SQL 定义table变量的问题
我有一系列的这样表 table1,table2,table3,table4.....
在执行一个函数的时候会传个参数,这个参数决定要执行哪个表
在函数中:
declare @num int
declare @tablename table(fld_id int)
set @tablename=?
select * from @tablename
我想把这个@tablename 赋值,随着传来的@num的不同,而使用不同的表(table1,table2,table3....)
请问:这个@tablename怎么赋值了?
------解决方案--------------------拼接成字符串
然后用exec 执行
------解决方案--------------------用EXECUTE sp_executesql 方法,具体参考帮助文档
------解决方案--------------------declare @num int
if @num =0
set @tableName = 'table1'
else
set @tableName = 'table2'
declare @sql nvarchar(500)
set @sql = 'select * from ' + @tableName
execsql(@sql)
------解决方案--------------------declare @num int
declare @tablename table(fld_id int)
set @tablename='aa'
EXEC('select * from '+@tablename )