首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sp_executesql 输出表,该怎么解决

2012-04-08 
sp_executesql 输出表用execute 与 sp_executesql 比较。我的理解是:其实用 exec 只要再多一句比如:set @st

sp_executesql 输出表
用execute 与 sp_executesql 比较。

我的理解是:
其实用 exec 只要再多一句比如:set @str='***'+@tmp 就可以替代 sp_executesql 输入变量@tmp了

但是输出变量怎么处理呢?好象只能用sp_executesql了
还有如何通过sp_executesql 来构造临时表呢?
比如一个临时表的表的结构是动态变化,用sp_executesql 怎么处理呢?
游标好象都可以通过 exec 动态构造 ,可是临时表就不可以,着是为什么呢?

比如要实现下面这种功能,怎么处理好呢?
declare @str varchar(200)
set @str='create table #a(id int,name varchar(10)'
--其中#a结构 可能会根据不同情况发生改变
exec(@str)

--然后能对#a 进行种操作。


[解决办法]
--然后能对#a 进行种操作。 

不可以
declare @str varchar(200)
set @str='create table #a(id int,name varchar(10)'
--其中#a结构 可能会根据不同情况发生改变
exec(@str+';insert into #a selec 1,2')这样的
变量的作用域不同,#a在exec里,外面访问不到,键实表或##全局表可以 

热点排行