读书人

SQL 定义table变量的有关问题

发布时间: 2012-02-12 17:16:34 作者: rapoo

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 )

读书人网 >asp.net

热点推荐