收藏本站 
广告服务 
网站地图 
>> 我们从网络和杂志上收集了近100000余篇各类电脑技术、网络技术、软件技术等方面的文章教程,我们的收录原则:不是精华拒不收录!
先飞电脑技术网技术文章数据库开发MS-SQL
网络编程 | 网站建设 | 网络技术 | 设计教程 | 软件教学 | 程序开发 | 数据库开发 | 教育认证 | 硬件维护 | 媒体动画 | 机械电子 |
学习SQL应知道的动态SQL语句基本语法
[ 作者:佚名    转贴自:网络转载    阅读次数:96    更新时间:2007-9-2 12:00:00   录入:刘光勇 ]         
    1 、普通SQL语句可以用Exec执行 DlF<RR~  
t&urAzu  
eg: Select * from tableName "i-L ff  
Exec('select * from tableName') iRw$L   
Exec sp_executesql N'select * from tableName' -- 请注意字符串前一定要加N Vwepu)  
tI?;6E^)  
2、字段名,表名,数据库名之类作为变量时,必须用动态SQL OY8wB=N  
Yw"+qsy  
eg: 0Vn'F:?6  
declare @fname varchar(20) M#O6L'R@?8  
set @fname = 'FiledName' YB}H]7kN  
Select @fname from tableName -- 错误,不会提示错误,但结果为固定值FiledName,并非所要。 +h et CZW  
Exec('select ' + @fname + ' from tableName') -- 请注意 加号前后的 单引号的边上加空格 iH8f I.  
pbC eqG  
当然将字符串改成变量的形式也可 xQ9"{rs  
declare @fname varchar(20) ]~Y ,QL9`  
set @fname = 'FiledName' --设置字段名 .BB50hW  
eQN9B `  
declare @s varchar(1000) I ~)U\  
set @s = 'select ' + @fname + ' from tableName' 'tFzuHcL  
Exec(@s) -- 成功 Gm>d0fByL|  
exec sp_executesql @s -- 此句会报错 4_B$WE=|  
#rETf% MM  
9U142E  
declare @s Nvarchar(1000) -- 注意此处改为nvarchar(1000) 1@ZF}HA1  
set @s = 'select ' + @fname + ' from tableName' vZjFOES  
Exec(@s) -- 成功 U$Jbl=  
exec sp_executesql @s -- 此句正确 tS A/G\  
N)nm5~$N  
3、输出参数 j [nM9K  
'P[66x  
declare @num int, kh)v-J_  
@sqls nvarchar(4000) e}5W*;eD*X  
set @sqls='select count(*) from tableName' &SvdEdw><  
exec(@sqls) +\}Z)  
--如何将exec执行结果放入变量中? l{p0:6  
twL+xk(C  
declare @num int, 6JSFFa%s  
@sqls nvarchar(4000) q/%<R~Ny\  
set @sqls='select @a=count(*) from tableName ' {Q'v@):  
exec sp_executesql @sqls,N'@a int output',@num output g-MR7Gj  
select @num '}l^+=$c$  
ajAiCy  
此外,如果想要在SQL语句 字符串中使用 单引号 '' 可以 使用 ''''
文章首页【加入到收藏夹】告诉好友】【打印此文】【关闭窗口
  版权声明:本站提供的“学习SQL应知道的动态SQL语句基本语法”版权归文章所有者,转载请注明出处!
 ·上一篇文章:SQL Anywhere Studio的主要特点及组件      ·下一篇文章:SQL语句中INSERT语句的另一种写法
相关文章
·学习Linux操作系统的软件配置[13]
·工作或学习当中经常遇到的五种阻塞情况[45]
·CSS样式表简明教程学习[57]
·学习SQL应知道的动态SQL语句基本语法[96]
·系统学习嵌入式Linux 几点非常实用的建议[90]
网站主页 | 收藏本页 | 联系我们 | 广告服务 | 站点地图 | 会员注册 | 招聘信息 | 内容指正

联系QQ:先飞电脑技术网站事务联系QQ,点击可以直接留言. 32933427 电话:13710542091 [世界排名] 鄂ICP备05005890号