动态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=N‘insert 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=N‘select @cnt= count(*) from sys.objects‘ exec sp_executesql @sql,N‘@cnt int output‘,@return_cnt output print @return_cnt
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。