使用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
时间: 2024-10-03 07:22:32