看一下:变量当表名查询但又要有返回值的问题!!!
declare @alu int
declare @tablename varchar(20)
set @tablename = 'byb '
set @alu = (select state from @tablename)
select @alu
本问题和一般变量取表名的问题不同的是,它多了一步取返回值的问题。
set @alu = (select state from @tablename)这里需要把查询的结果值赋给@alu变量。如果采用exec( 'select state from ' + @tablename)这种方式的话并不能够把返回的查询值赋给@alu变量。向高手们赐教!
------解决方案--------------------declare @alu int
declare @tablename varchar(20)
set @tablename = 'byb '
declare @sql nvarchar(200)
set @sql=N 'select @alu=state from '+@tablename
exec sp_executesql @sql,N '@alu int output ',@alu output
select @alu