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. c++ switch语句

    一.认识switch格式 switch(表达式) { case 常量表达式: 语句1; break; case 常量表达式: 语句2; break; case 常量表达式: 语句3; break; . ...

  2. jQuery学习-属性选择器

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  3. pythonDjango开发-创建django程序

    1.创建jgango程序 a.命令 cmd命令行下 进入到需要创建项目的路径下 django-admin startproject mysite  创建项目 cd mysite 进入项目文件夹 pyt ...

  4. python面试题(二)

    最近参加了几场招聘,发现好多人的一些基础知识不是很扎实,做的题很多都是错误的,因此找了一些我们公司面试过程中的一些最基本的面试题供大家参考,希望各位都能找到一个好的工作.今天给大家先分享的是关于Pyt ...

  5. ModelForm解密

     一.复用model表和字段 models.py文件 class User(models.Model): username = models.CharField(max_length=32) emai ...

  6. android 图片二维码识别和保存(二)

    续上一篇,开发图片二维码识别功能后,我们对功能进行性能分析内存占用显著提高了,不使用该功能内存占用大约是147M,使用这个功能多次以后,高达203M. 因此对功能进行研究,发现每次生成的图片没有即时的 ...

  7. mysql查询当天,前一天,一周,一个月

    当天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ...

  8. day01_概念

    1 网络分类: 1 按照范围: - 局域网:范围很小的网络,如一间办公室,一个公司 - 城域网:大致城市范围内的网络,半径几公里到几十公里 - 广域网:比城域网范围更大的 2 网络衡量标准 1 传输速 ...

  9. Android Studio 导入别人项目时候遇见的问题“Gradle DSL method not found: 'compile()'”

    Gradle DSL method not found: 'compile() 遇见这个问题截图: 解决: 在项目的根目录的build.gradle文件中是不是用了compile方法 如果有的话,剪切 ...

  10. python解释 yield 和 Generators(生成器)

    yield 和 Generators(生成器) 转自:http://www.oschina.net/translate/improve-your-python-yield-and-generators ...