动态SQL的两种执行方式:EXEC @sql 和 EXEC sys.sp_executesql @sql

DECLARE @c_ids VARCHAR(200)
SET @c_ids ='1,2' --直接这样是无法执行的
--SELECT * FROM dbo.Student WHERE Class IN (@c_ids) --1, Exec 执行SQL动态查询
Exec ('SELECT * FROM dbo.Student WHERE Class IN ('+@c_ids+')') -- 2,通过动态查询,过滤需要的列
DECLARE @rols VARCHAR(200)
SET @rols='StuName,StuAge,Class'
Exec ('SELECT '+@rols+' FROM dbo.Student WHERE Class IN ('+@c_ids+')') --3,执行SQL动态查询的另外一种方法,通过内置存储过程:sys.sp_executesql 执行SQL语句
DECLARE @sql NVARCHAR(200)
SET @sql='SELECT '+@rols+' FROM dbo.Student WHERE Class IN ('+@c_ids+')'
EXEC sys.sp_executesql @sql --4, 存储过程动态执行SQL,以参数变量@agePara的形式给SQL语句传递变量
DECLARE @age INT
SET @age = 18
SET @sql='SELECT * FROM dbo.Student WHERE StuAge = @agePara '
EXEC sys.sp_executesql @sql,N'@agePara int',@age --5, '' 两个' 转移成一个',选择出名字中包含有‘英’字的学生信息
DECLARE @txt NVARCHAR(10)
SET @txt = '英'
SET @sql='SELECT * FROM dbo.Student WHERE StuName like ''%@namePara'' '
EXEC sys.sp_executesql @sql,N'@namePara NVARCHAR(10)',@txt --6, 把需要输出的变量同样可以定义到变量中进行输出
DECLARE @rowCountResult INT
SET @sql='SELECT @rowCountResult=count(*) FROM dbo.Student WHERE StuAge = @agePara '
EXEC sys.sp_executesql @sql,N'@agePara int,@rowCountResult int OutPut',@age ,@rowCountResult OUTPUT
SELECT @rowCountResult --7,技巧:用Print 查看拼接的动态SQL是否正确
SELECT 'SELECT '+@rols+' FROM dbo.Student WHERE StuAge = @agePara '

  

最新文章

  1. Android 自定义View及其在布局文件中的使用示例
  2. 开源消息队列:NetMQ
  3. 防止 JavaScript 自动插入分号
  4. 初学cocos2dx-3.x之使用Scale9Sprite时的配置问题
  5. poj 1741 树的分治
  6. LeetCode题解——Median of Two Sorted Arrays
  7. Quartz 定时器时间设置
  8. 转载:android——eclipse如何去除Ctrl+shift+R组合键查找到的.class文件
  9. 如何track存储过程的编译次数
  10. Linux根目录下文件说明
  11. error: WatchKit App doesn't contain any WatchKit Extensions whose WKAppBundleIdentifier matches
  12. Win10 Bash/WSL调试Linux环境下的.NET Core应用程序
  13. tomcat启动报错:Address already in use: JVM_Bind
  14. slf4j+log4j2模式的日志搭建
  15. Centos7.3 编译安装GDAL以及Python的GDAL包
  16. DBUtils的增删改查
  17. 如何取消Visual Studio Browser Link
  18. ntpdata 同步时间
  19. AIX 5335端口IBM WebSphere应用服务器关闭连接信息泄露漏洞的修复
  20. eclipse java build path问题汇总

热门文章

  1. HTML 5篇(持续更新)
  2. SQL点点滴滴_UPDATE小计
  3. x64 QWORD Xor shellcode encoder
  4. npm安装及webpack打包小demo
  5. 【深入理解JAVA虚拟机】第二部分.内存自动管理机制.2.HotSpot虚拟机对象探秘
  6. February 21 2017 Week 8 Tuesday
  7. commons dbcp.jar有什么用
  8. 关于mvvm:UI、数据、绑定、状态、中间变量、数据适配、数据处理
  9. 牛客网多校训练第一场 B - Symmetric Matrix(dp)
  10. 输出预测边界框,NMS非极大值抑制