sqlserver 动态sql执行execute和sp_executesql

 sp_executesql的运用
  书写语法要点:
  exec sp_executesql @sql,N’参数1 类型1,参数2 类型2,参数3 类型3 OUTPUT’,参数1,参数2,参数3 OUTPUT;
  注意参数前后顺序必须对应好 如下图不同颜色的标记
 

注意

1> @sql 必须为ntext/nchar/nvarchar类型

2> @sql的参数赋值语句的前面必须用"N",转换为Unicode字符串

--定义一个游标 
declare zb_cur cursor for select zb_gl.zb_sql_gs from zb_gl
--@zb_sql为动态sql,过程需要类型为 'ntext/nchar/nvarchar' 的参数 '@statement'。 declare @zb_sql nvarchar(2000) declare @ymd varchar(20) set @ymd='2019-1-1' --打开游标 open zb_cur while 0=0 begin --读取游标 fetch next from zb_cur into @zb_sql if @@FETCH_STATUS=0 begin print @zb_sql exec sp_executesql @zb_sql,N'@ymd varchar(20)',@ymd end else break end close zb_cur --摧毁游标 deallocate zb_cur

  

  

原文地址:https://www.cnblogs.com/guohu/p/11141428.html