动态SQL语句

原创 2003年12月15日 01:26:00

1:
普通SQL语句可以用Exec执行
eg:   Select * from tableName
      Exec('select * from tableName')
      sp_executesql N'select * from tableName'    -- 请注意字符串前一定要加N

2:
字段名,表名,数据库名之类作为变量时,必须用动态SQL
eg:  
declare @fname varchar(20)
set @fname = '[name]'
Select @fname from sysobjects                     -- 错误
Exec('select ' + @fname + ' from sysobjects')     -- 请注意 加号前后的 单引号的边上要加空格
exec sp_executesql N' select ' + @fname + ' from sysobjects'
当然将字符串改成变量的形式也可
    declare @s varchar(1000)
    set @s = 'select ' + @fname + ' from sysobjects'
    Exec(@s)                -- 成功
    exec sp_executesql @s   -- 此句会报错

    declare @s Nvarchar(1000)  -- 注意此处改为nvarchar(1000)
    set @s = 'select ' + @fname + ' from sysobjects'
    Exec(@s)                -- 成功   
    exec sp_executesql @s   -- 此句正确,

3: 输出参数
eg:
declare @num,
        @sqls
set @sqls='select count(*) from  ' + @servername + '.a.dbo.b'
exec(@sqls)
我如何能将exec执行的结果存入变量@num中

declare @num int,
        @sqls nvarchar(4000)
set @sqls='select @a=count(*) from '+@servername+'.a.dbo.b'
exec sp_executesql @sqls,N'@a int output',@num output
select @num

动态SQL语句的语法

动态SQL是在运行时生成和执行SQL语句的编程方法。动态是和静态相对而言的。静态SQL指的是在代码编译时刻就已经包含在代码中的那些已经充分明确的固定的SQL语句。 PL/ SQL提供了两种方式来编写动...
  • chiclewu
  • chiclewu
  • 2013年11月14日 22:16
  • 5276

如何使用动态SQL语句?

这里只介绍动态SQL的使用。关于动态SQL语句的语法,参见:http://blog.csdn.net/chiclewu/article/details/16097133 1.什么是时候需要使用动态S...
  • chiclewu
  • chiclewu
  • 2013年12月03日 22:21
  • 3679

Mybatis使用之动态SQL语句

摘要: Mybatis动态SQL语句可帮助我们根据需要动态拼接SQL语句。主要在配置文件中使用 标签来实现。...
  • chenghuaying
  • chenghuaying
  • 2015年05月20日 22:21
  • 2081

mybatis动态SQL语句整理

本博文转载自:点击打开链接http://blog.csdn.net/ask_rent/article/details/6320326 三、动态SQL语句   有些时候,sql语...
  • see__you__again
  • see__you__again
  • 2016年07月07日 11:04
  • 2137

sql语句 静态sql和动态sql

使用动态SQL是在编写PL/SQL过程时经常使用的方法之一。很多情况下,比如根据业务的需要,如果输入不同查询条件,则生成不同的执行 SQL查询语句,对于这种情况需要使用动态SQL来完成。再比如,对于...
  • zy_281870667
  • zy_281870667
  • 2016年06月15日 16:45
  • 2712

MyBatis动态SQL之增、删、改、查操作

MyBatis动态SQL之增、删、改、查操作MyBatis动态SQL之增删改查操作 概述 MyBatis动态SQL支持 动态SQL之查询 动态SQL之插入 动态SQL之删除 动态SQL之更新 概述在实...
  • jpzhu16
  • jpzhu16
  • 2016年10月13日 22:23
  • 9967

MyBatis学习总结(11)——MyBatis动态Sql语句

MyBatis中对数据库的操作,有时要带一些条件,因此动态SQL语句非常有必要,下面就主要来讲讲几个常用的动态SQL语句的语法 MyBatis中用于实现动态SQL的元素主要有: if cho...
  • u012562943
  • u012562943
  • 2016年01月05日 11:23
  • 2268

oracle对动态sql语句的处理

1、静态SQL语句性能优于动态SQL语句,如果功能确定最好使用静态SQL语句 2、使用execute immediate语句,用于处理除了多行查询之外的任何动态SQL,包括DDL、DCL、DML、以...
  • ceclar123
  • ceclar123
  • 2012年09月13日 17:46
  • 2067

配置Mybatis的动态sql语句

今天项目经理让我们做一个Mybatis的动态sql语句配置文件 要求如下: (1).提交个多个(3个以上)条件的查询的mapper配置文件。 当参数不传则不作为查询的条件 (2).insert ,u...
  • yesz12358
  • yesz12358
  • 2016年08月03日 13:32
  • 1012

Oracle 动态SQL语句

EXECUTE IMMEDIATE代替了以前Oracle8i中DBMS_SQLpackage包.  它解析并马上执行动态的SQL语句或非运行时创建的PL/SQL块.动态创建和执行SQL语句性能超前,E...
  • G15738290530
  • G15738290530
  • 2016年07月04日 12:18
  • 5083
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:动态SQL语句
举报原因:
原因补充:

(最多只允许输入30个字)