你的@a是定义在@sql外面的,当你用execute(@sql)时,由于@sql中的@a没有定义,就会出错。 你可以这样 set @sql='declare @a int select @a=a from '+@tablename 然后execute(@sql) 但是@a这个变量在执行完execute后你也拿不到它的值。 如果一定要用的话,只能将它也放到@sql中去。
sp_ExecuteSQL 建议搜索以前的帖子!
declare @sql set @sql=' declare @a int select @a = a from ' + @TableName +' select @a' execute(@sql)
你可以这样
set @sql='declare @a int select @a=a from '+@tablename
然后execute(@sql)
但是@a这个变量在执行完execute后你也拿不到它的值。
如果一定要用的话,只能将它也放到@sql中去。
建议搜索以前的帖子!
set @sql='
declare @a int
select @a = a from ' + @TableName
+' select @a'
execute(@sql)