DBA在這裏工作是試圖把我直截了當的存儲過程變成一個動態的SQL怪物。無可否認,我的存儲過程可能不如他們想要的那麼快,但我不禁相信有足夠的方式來做基本上是有條件的連接。有條件的連接 - 動態SQL
這裏是我的存儲過程的一個例子:
SELECT
*
FROM
table
WHERE
(
@Filter IS NULL OR table.FilterField IN
(SELECT Value FROM dbo.udfGetTableFromStringList(@Filter, ','))
)
的UDF把一個逗號分隔的過濾器列表(例如,銀行名稱)到表。
很明顯,在where子句中使用過濾條件並不理想。歡迎任何關於基於存儲的proc參數有條件加入的更好方式的建議。除此之外,有沒有人對動態sql方法有任何建議?
感謝
「這裏的DBA正努力將我直截了當的存儲過程轉變爲動態的sql怪物。」 - 這很有趣,它通常是我的另一種方式;) – RedFilter 2009-01-22 15:28:42