使用动态SQL语句是最简单的处理方法。

原创 2006年06月01日 10:06:00

使用动态SQL语句是最简单的处理方法。

 

动态sql语句基本语法
1 :普通SQL语句可以用Exec执行

eg:   Select * from tableName
         Exec('select * from tableName')
         Exec sp_executesql N'select * from tableName'    -- 请注意字符串前一定要加N

2:字段名,表名,数据库名之类作为变量时,必须用动态SQL

eg:  
declare @fname varchar(20)
set @fname = 'FiledName'
Select @fname from tableName              -- 错误,不会提示错误,但结果为固定值FiledName,并非所要。
Exec('select ' + @fname + ' from tableName')     -- 请注意 加号前后的 单引号的边上加空格

当然将字符串改成变量的形式也可
declare @fname varchar(20)
set @fname = 'FiledName' --设置字段名

declare @s varchar(1000)
set @s = 'select ' + @fname + ' from tableName'
Exec(@s)                -- 成功
exec sp_executesql @s   -- 此句会报错

 

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

3. 输出参数
declare @num int,
        @sqls nvarchar(4000)
set @sqls='select count(*) from tableName'
exec(@sqls)
--如何将exec执行结果放入变量中?

declare @num int,
               @sqls nvarchar(4000)
set @sqls='select @a=count(*) from tableName '
exec sp_executesql @sqls,N'@a int output',@num output
select @num

如何使用动态SQL语句?

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

优化 SQL SELECT 语句性能的 6 个简单技巧

本文由 伯乐在线 - xianhu 翻译,进林 校稿。未经许可,禁止转载! 英文出处:msiman.ga。欢迎加入翻译小组。 SELECT语句的性能调优有时是一个非常耗时的任务,在我看来它遵循...
  • werm520
  • werm520
  • 2015年05月04日 16:09
  • 10507

Mybatis解析动态sql原理分析

前言 废话不多说,直接进入文章。 我们在使用mybatis的时候,会在xml中编写sql语句。 比如这段动态sql代码: "update" parameterType="org.forma...
  • wuli2496
  • wuli2496
  • 2016年08月11日 16:38
  • 1346

iBatis.net使用动态sql语句

  • 2015年12月04日 10:42
  • 89KB
  • 下载

ibatis简单的动态sql语句

ibatis动态SQL语句 动态SQL语句 1)二元条件元素的属性:  prepend  - 可被覆盖的 SQL 语句组成部分,添加在语句的前面(可选)  property  - 被比...
  • xym2589
  • xym2589
  • 2011年11月19日 19:00
  • 285

oracle对动态sql语句的处理

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

动态sql语句 异常处理

--execute immediate 实现DDL declare v_ddl varchar2(200); begin v_ddl:='create table mytable ...
  • zjy30015563
  • zjy30015563
  • 2012年03月26日 18:45
  • 472

oracle动态sql语句处理——47522341的专栏在去dba的路上

动态SQL语句处理:根据要处理的sql语句的作用不同,可以使用三种不同类型的动态sql方法:使用execute immediate语句可以处理包括ddl(create、alter和drop)、DCL(...
  • saijie1983
  • saijie1983
  • 2012年04月24日 07:02
  • 450

使用JOOQ seek语句及动态SQL重写MySQL分页逻辑

众所周知,MySQL在数据量很大的时候查询的效率是很低的,因为假如你需要OFFSET 100000 LIMIT 5这样的数据,数据库就需要跳过前100000条数据,才能返回给你你需要的5条数据。由于数...
  • Q_AN1314
  • Q_AN1314
  • 2016年12月07日 22:51
  • 1628

如何使用动态SQL语句?

这里只介绍动态SQL的使用。关于动态SQL语句的语法,参见:http://blog.csdn.net/chiclewu/article/details/16097133 1.什么是时候需要使用动态S...
  • chiclewu
  • chiclewu
  • 2013年12月03日 22:21
  • 3605
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用动态SQL语句是最简单的处理方法。
举报原因:
原因补充:

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