SQL Server执行动态SQL

迈不过友情╰ 2021-12-10 02:25 537阅读 0赞

原文链接:https://www.cnblogs.com/JinweiChang/p/10600808.html

  1. 1 :普通SQL语句可以用Exec执行
  2. eg:
  3. Select * from tableName
  4. Exec('select * from tableName')
  5. Exec sp_executesql N'select * from tableName' -- 请注意字符串前一定要加N
  6. 2:字段名,表名,数据库名之类作为变量时,必须用动态SQL
  7. eg:
  8. declare @fname varchar(20)
  9. set @fname = 'FiledName'
  10. Select @fname from tableName -- 错误,不会提示错误,但结果为固定值FiledName,并非所要。
  11. Exec('select ' + @fname + ' from tableName') -- 请注意 加号前后的 单引号的边上加空格
  12. 当然将字符串改成变量的形式也可
  13. declare @fname varchar(20)
  14. set @fname = 'FiledName' --设置字段名
  15. declare @s varchar(1000)
  16. set @s = 'select ' + @fname + ' from tableName'
  17. Exec(@s) -- 成功
  18. exec sp_executesql @s -- 此句会报错
  19. declare @s Nvarchar(1000) -- 注意此处改为nvarchar(1000)
  20. set @s = 'select ' + @fname + ' from tableName'
  21. Exec(@s) -- 成功
  22. exec sp_executesql @s -- 此句正确
  23. 3. 输出参数
  24. declare @num int,@sqls nvarchar(4000)
  25. set @sqls='select count(*) from tableName'
  26. exec(@sqls)
  27. --如何将exec执行结果放入变量中?
  28. declare @num int,@sqls nvarchar(4000)
  29. set @sqls='select @a=count(*) from tableName '
  30. exec sp_executesql @sqls,N'@a int output',@num output
  31. select @num

发表评论

表情:
评论列表 (有 0 条评论,537人围观)

还没有评论,来说两句吧...

相关阅读

    相关 SQL server执行计划

    本篇主要目的有二: 1、看懂t-sql的执行计划,明白执行计划中的一些常识。 2、能够分析执行计划,找到优化sql性能的思路或方案。 如果你对sql查询优化的理解或常识不

    相关 cmd 执行sql脚本 sql server

    工作中遇到,当使用Sql Server管理器生成数据库脚本,由于脚本文件太大,导致不能使用Sql Server管理器执行或者无法打开sql脚本,此时就可以使用命令行执行sql脚