您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

sqlserver 动态sql执行execute和sp_executesql,用动态SQL语句给变量赋值

bubuko 2022/1/25 19:34:00 sqlserver 字数 5122 阅读 854 来源 http://www.bubuko.com/infolist-5-1.html

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

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

简易测试代码:

declare @FSQL nVARCHAR(1000),@FF VARCHAR(100)
 SET @FSQL=SELECT @FF=‘‘AA‘‘ 

 PRINT @FSQL
 exec sp_executesql @FSQL,N@FF VARCHAR(100) OUT,@FF OUT
 SELECT @FF

 

 

 

注意

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

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

--定义一个游标
declare zb_cur cursor for select zb_gl.zb_sql_gs from zb_gl<br>--@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

 

sqlserver 动态sql执行execute和sp_executesql,用动态SQL语句给变量赋值

原文:https://www.cnblogs.com/Bokeyan/p/13304627.html


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶