在这里工作的 DBA 正试图将我简单的存储过程变成一个动态的 sql 怪物。诚然,我的存储过程可能没有他们想要的那么快,但我不禁相信有一种足够的方法来执行基本上是条件连接的操作。
这是我的存储过程的示例:
SELECT
*
FROM
table
WHERE
(
@Filter IS NULL OR table.FilterField IN
(SELECT Value FROM dbo.udfGetTableFromStringList(@Filter, ','))
)
UDF 将逗号分隔的过滤器列表(例如银行名称)转换为表格。
显然,在 where 子句中包含过滤条件并不理想。欢迎任何关于基于存储的 proc 参数有条件地加入的更好方法的建议。除此之外,是否有人对动态 sql 方法有任何建议或反对?
谢谢