日期:2014-05-18  浏览次数:20460 次

关于sql的问题
我想把表名当一个参数传入存储过程 然后决定查哪张表,把问题简化如何 但是会出错,这种改怎么解决,不要用动态sql
DECLARE @j VARCHAR(20)
SET @j='T_DG201202_CUST'
SELECT * FROM @j


消息 1087,级别 15,状态 2,第 3 行
必须声明表变量 "@j"。


------解决方案--------------------

DECLARE @j VARCHAR(20)
SET @j='T_DG201202_CUST'
exec('select * from '+@j)

--需要动态执行
------解决方案--------------------
探讨

我就不要动态执行的呀!因为我存储过程里面比较复杂,动态执行会引出新的一些问题,还有没有其他方法呀