我讨厌出于各种原因来挑选这些东西;调试,缺乏执行计划,权限问题等。是否有可行的替代方法在存储过程中构建巨大的动态sql语句然后执行它?
答案 0 :(得分:1)
我有时通过从临时表中删除我不想要的行来避免动态SQL。但我并不是说这对性能来说是最好的 - 我在数据仓库中工作的频率高于其他因素,例如避免动态SQL。
这是一个例子,对于要求TOP x记录的报告,我选择最大值,比如200,然后简单地删除其余部分。 (即,200是报告所需的最大值。我希望。)因此,如果参数名称为@Range,将会有:
SELECT TOP 200
...
DELETE FROM #MyTemp where Counter > @Range