动态Tsql 获取返回值

使用Execute 和 sp_executesql实现动态Tsql,如何获取动态tsql的返回值?

第一部分:execute

1,Execute是个函数,能够执行sql语句,示例语句如下

declare @sql nvarchar(max)
declare @return_cnt int

if object_id(tempdb..#tempcnt) is not null
drop table  #tempcnt
create table #tempcnt(cnt int) set @sql=Ninsert into #tempcnt select count(*) from sys.objects exec (@sql) select * from #tempcnt

从示例代码中可以看出,临时表是在动态sql范围之前声明,但是可以用于动态sql之中,说明临时表的作用域是面向连接的,只要在当前的链接中,就能够访问临时表。

 

第二部分:sp_executesql

1,sp_executesql 具有获取返回值的功能

declare @sql nvarchar(max)
declare @return_cnt int

set @sql=Nselect @cnt= count(*) from sys.objects

exec sp_executesql @sql,N@cnt int output,@return_cnt output

print @return_cnt

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。