1. /******************************************************************************************************************************************************
  2. 动态语句语法:exec/sp_executesql语法
  3. 整理人:中国风(Roy)
  4. 日期:2008.06.06
  5. ******************************************************************************************************************************************************/
  6. 动态语句语法:
  7. --方法1查询表改为动态
  8. select * from sysobjects
  9. exec('select ID,Name from sysobjects')
  10. exec sp_executesql N'select ID,Name from sysobjects'--多了一个N为unicode
  11. --方法2:字段名,表名,数据库名之类作为变量时,用动态SQL
  12. declare @FName varchar(20)
  13. set @FName='ID'
  14. exec('select '+@FName+' from sysobjects where '+@FName+'=5' )
  15. declare @s varchar(1000)
  16. set @s=N'select '+@FName+' from sysobjects where '+@FName+'=5'
  17. exec sp_executesql @s--会报错
  18. declare @s nvarchar(1000)--改为nvarchar
  19. set @s=N'select '+@FName+' from sysobjects where '+@FName+'=5'
  20. exec sp_executesql @s--成功
  21. --方法3:输入参数
  22. declare @i int,@s nvarchar(1000)
  23. set @i=5
  24. exec('select ID,Name from sysobjects where ID='+@i)
  25. set @s='select ID,Name from sysobjects where ID=@i'
  26. exec sp_executesql @s,N'@i int',@i--此处输入参数要加上N
  27. --方法4:输出参数
  28. declare @i int,@s nvarchar(1000)
  29. set @s='select @i=count(1) from sysobjects'
  30. --用exec
  31. exec('declare @i int '+@s+' select @i')--把整个语句用字符串加起来执行
  32. --用sp_executesql
  33. exec sp_executesql @s,N'@i int output',@i output--此处输出参数要加上N
  34. select @i
  35. --方法5:输入输出
  36. --用sp_executesql
  37. declare @i int,@con int,@s nvarchar(1000)
  38. set @i=5
  39. select @s='select @con=count(1) from sysobjects where ID>@i'
  40. exec sp_executesql @s,N'@con int output,@i int',@con output ,@i
  41. select @con
  42. --用exec
  43. declare @i int,@s nvarchar(1000)
  44. set @i=5
  45. select @s='declare @con int select @con=count(1) from sysobjects where ID>'+rtrim(@i)+' select @con'
  46. exec(@s)

http://blog.csdn.net/roy_88/article/details/3020586

动态语句SQL语句写法的更多相关文章

  1. 模拟Hibernate动态生成SQL语句

    这里有一个xml配置文件,也就是Hibernate框架中会用到的POJO和数据库的映射文件 <?xml version="1.0" encoding="utf-8& ...

  2. Mybatis之动态构建SQL语句

    今天一个新同事问我,我知道如何利用XML的方式来构建动态SQL,可是Mybatis是否能够利用注解完成动态SQL的构建呢?!!答案是肯定的,MyBatis 提供了注解,@InsertProvider, ...

  3. 使用exec和sp_executesql动态执行SQL语句(转载)

    当需要根据外部输入的参数来决定要执行的SQL语句时,常常需要动态来构造SQL查询语句,个人觉得用得比较多的地方就是分页存储过程和执行搜索查询的SQL语句.一个比较通用的分页存储过程,可能需要传入表名, ...

  4. sp_executesql动态执行sql语句并将结果赋值给一变量

    需求场景: 需动态拼接sql语句进行执行,并将执行的结果赋值给一指定变量. 样例代码如下: SELECT @tableName = TAB_NAME FROM dbo.NMR_BLYWBDY WHER ...

  5. 第二百八十七节,MySQL数据库-条件语句、循环语句、动态执行SQL语句

    MySQL数据库-条件语句.循环语句.动态执行SQL语句 1.if条件语句 delimiter \\ CREATE PROCEDURE proc_if () BEGIN ; THEN ; ELSEIF ...

  6. 动态执行SQL语句,接收返回值

    一.exec和sp_executesql介绍 当需要根据外部输入的参数来决定要执行的SQL语句时,常常需要动态来构造SQL查询语句.比如,一个比较通用的分页存储过程,可能需要传入表名,字段,过滤条件, ...

  7. 如何根据实体动态生成sql语句

    该文章同时解决了,如何向数据库中添加Null值,以及如何处理“参数化查询未提供参数”的错误.解决方案请看第二段折叠的代码. 背景: 在项目开发的过程中,往往需要根据实体的值来修改sql语句,比如说,有 ...

  8. java动态拼接sql语句并且执行时给sql语句的参数赋值

    问题 在这里举一个例子,比如我要做一个多条件模糊查询,用户输入的时候有可能输入一个条件,也有可能输入两个条件,这时执行查询的sql语句就不确定了,但可以用动态拼接sql语句来解决这个问题. 解决方法 ...

  9. JDBC 用PreparedStatement语句动态操作SQL语句

    https://blog.csdn.net/u014453898/article/details/79038187 1.Statement 和 PreparedStatement: Statement ...

  10. sqlserver 抓取所有执行语句 SQL语句分析 死锁 抓取

    原文:sqlserver 抓取所有执行语句 SQL语句分析 死锁 抓取 在多人开发中最头疼的是人少事多没有时间进行codereview,本来功能都没时间写,哪有时间来开会细细来分析代码.软件能跑就行, ...

随机推荐

  1. 20155338《网络对抗》Exp2 后门原理与实践

    20155338<网络对抗>Exp2 后门原理与实践 一. 基础问题 (1)例举你能想到的一个后门进入到你系统中的可能方式? 答:游览网站中附带的广告或弹出的不正规软件. (2)例举你知道 ...

  2. 《Java 程序设计》课堂实践项目-简易计算器

    <Java 程序设计>课堂实践项目简易计算器 课后学习总结 目录 改变 简易计算器实验要求 课堂实践成果 课后思考 改变 修改了博客整体布局,过去就贴个代码贴个图很草率,这次布局和内容都有 ...

  3. django学习笔记(4)

    Part 4: Forms and generic views ====> Write a simple form$ edit polls\templates\polls\detail.html ...

  4. 25-[jQuery]-事件

    重点:jQuery事件绑定on().bind()与delegate() 方法详解 1.jquery的事件 <!DOCTYPE html> <html lang="en&qu ...

  5. CentOS 7 安装 caffe

    1.安装CUDA,很简单,傻瓜式安装 2.http://caffe.berkeleyvision.org/install_yum.html 按照里面安装 3.遇到的问题: LD -o .build_r ...

  6. [SYZOJ279]滑♂稽♂树

    主♂席♂树♂裸♂题 https://syzoj.com/problem/279 https://oj.changjun.com.cn/problem/detail/pid/2425 // It is ...

  7. wget和curl方式下载JDK

    有时候我们需要在Linux服务器上安装Oracle JDK,这时候我们发现直接复制网页上面的地址是不能下载的 以下载jdk-8u101-linux-i586.tar.gz为例,右键查看到的地址为htt ...

  8. Python之面向对象的组合、多态、菱形问题、子类中重用父类的两种方式

    一.组合 ''' 1.什么是组合 组合就是一个类的对象具备某一个属性,该属性的值是指向另外一个类的对象 2.为何用组合 组合也是用来解决类与类直接代码冗余问题的 3.如何用组合 ''' # 继承减少代 ...

  9. python应用:生成简单二维码

    概述 \(\quad\)第一篇python的应用就打算写一写用python生成简单的二维码啦.因为二维码在日常生活中越来越常用了,部分博客也用二维码来用作打赏的工具.但是要提醒大家的是,千万不要乱扫街 ...

  10. TensorFlow Python3.7环境下的源码编译(一)环境准备

    参考: https://blog.csdn.net/yhily2008/article/details/79967118 https://tensorflow.google.cn/install/in ...