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. java.lang.IllegalStateException: ApplicationEventMulticaster not initialized

    <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring- ...

  2. 查看git提交细节

    git log git show fdf39277f54dd0484a9fefc012463924544e07af

  3. Java 中的extends 和 implements

    初学Java语言, 代码中的extends和implements让我感到很迷惑,现在终于弄明白它们之间的区别和用法了. //定义一个Runner接口 public inerface Runner { ...

  4. JAVAWEB 遍历mysql结果集时 字段为0、false、null的问题

    foreach遍历查询mysql中的tinyint字段时一直查都是各种0,false,null 发现原来是实体类中的变量名和mysql中的列名不一样出的bug 所以说列名和实体类中的相关变量名是要保持 ...

  5. Apache Flink学习笔记

    Apache Flink学习笔记 简介 大数据的计算引擎分为4代 第一代:Hadoop承载的MapReduce.它将计算分为两个阶段,分别为Map和Reduce.对于上层应用来说,就要想办法去拆分算法 ...

  6. c# url链接转成二维码图片,再转成byte[]二进制流,输出到前段ajax

    需要用到的 dll 添加引用 代码: //获取配置文件设置的url string urllink = ConfigurationManager.AppSettings["urllink&qu ...

  7. Microsoft Visual Studio International Pack

    Visual Studio International Pack 包含一组类库,该类库扩展了.NET Framework对全球化软件开发的支持.使用该类库提供的类,.NET 开发人员可以更方便的创建支 ...

  8. Git 个人笔记

     最近在看 Git ,顺便把这些常用命令记录下来,以备以后忘记能查看(未完):   // 设置用户名和邮箱  使用global 表示这台主机上所有的Git仓库都会使用这个配置  也可以对某个仓库指定不 ...

  9. JDBC多表操作

    一.一对多关系:部门管理系统 1.数据库 create table department ( id ) primary key, name ) ); create table employee ( i ...

  10. 使用Xshell远程访问tensorboard

    在使用tensorflow时,由于本地资源的限制,一般在远程服务器上训练模型,而服务器没有图形界面,那么在训练过程中如何实时地访问tensorboard可视化数据呢? 如果服务器和本地电脑连接在同一个 ...