日期:2014-05-19  浏览次数:20568 次

表名为变量
declare   @A   nvarchar(10),@B   nvarchar(10)
set   @B=hr
set   @A= '30608H '

select   *   from   @B   where   Hr_NO=@A


提示错误   :
服务器:   消息   137,级别   15,状态   2,行   5
必须声明变量   '@B '。


表名变量应该如何处理呢、。

------解决方案--------------------
declare @A nvarchar(10),@B nvarchar(10)
set @B=hr
set @A= '30608H '

exec( 'select * from '+@B+ ' where Hr_NO= '+@A)

------解决方案--------------------
在sql语句中 栏位名 或者表名是变量,那就需要使用动态sql
declare @A nvarchar(10),@B nvarchar(10)
set @B=hr
set @A= '30608H '

exec( 'select * from '+ @B+ ' where Hr_NO= '+@A)