我刚刚遇到了一件奇怪的事情......我们网站上有一些代码正在使用一个巨大的 SQL 语句,通过基于一些用户值进行一些搜索和替换来修改它,然后将其传递给 SQL Server一个问题。
我认为这将作为对存储过程的参数化查询更清晰,以用户值作为参数,但是当我仔细观察时,我明白他们为什么会这样做......他们从中选择的表是可变地取决于这些用户值。
例如,在一种情况下,如果值是 ("FOO", "BAR"),则查询最终会变成类似于 "SELECT * FROM FOO_BAR"
有没有简单明了的方法来做到这一点?我正在尝试的一切似乎都不优雅。
编辑:当然,我可以在存储的过程中动态生成 sql,并执行它(bleh),但那时我想知道我是否有任何收获。
EDIT2:以某种智能方式重构表名,例如将它们全部放在一个具有不同名称的表中作为新列将是解决所有这些问题的好方法,有几个人直接指出或暗示了这一点。可悲的是,在这种情况下,这不是一个选择。