为您讲解SQL动态语句的语法

数据库 SQL Server
SQL中动态SQL语句是经常要用到的,下面就为您介绍动态SQL语句的语法,如果您对SQL语句感兴趣的话,不妨一看,相信对您会有所帮助。

动态SQL语句是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
 

 

【编辑推荐】

SQL2005中的RANK、DENSE_RANK排名函数

SQL中随机数函数rand()简介

SQL中数据类型转换函数的使用

SQL中的字符串操作函数

两种SQL中的字符串比较函数

责任编辑:段燃 来源: 互联网
相关推荐

2010-09-03 14:31:31

SQLSELECT语句

2010-11-12 13:40:38

动态sql语句

2010-09-07 11:28:15

SQL语句

2010-10-27 17:04:41

Oracle动态查询

2010-09-26 10:27:22

SQL替换语句

2010-11-12 13:08:36

动态sql语句

2010-09-25 11:02:33

SQL主键

2010-09-28 11:28:40

SQL字段属性

2010-09-08 17:10:24

SQL循环语句

2010-09-07 10:42:12

SQL语句

2010-10-21 11:44:55

SQL Server分

2010-09-07 09:45:48

SQL语句

2010-09-08 17:25:17

SQL全局变量

2010-09-07 15:54:47

SQL语句LIKE

2010-02-07 15:24:49

三层交换机

2009-03-17 00:49:48

2023-03-28 07:36:01

SQL数据库管理

2010-09-03 14:14:16

SQL删除

2010-09-24 15:58:24

SQL语句逐条更新

2010-07-13 17:13:55

SQL ServerS
点赞
收藏

51CTO技术栈公众号