欢迎来到天天文库
浏览记录
ID:34726273
大小:347.68 KB
页数:81页
时间:2019-03-10
《sql语句妙用各种sql语句的详细用法与讲解》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、学习SQL应知道的动态SQL语句基本语法1、普通SQL语句可以用Exec执行9Kp=A 'CdaFr1 eg:Select*fromtableNameWsc+A:<" Exec('select*fromtableName')#Btn( Execsp_executesqlN'select*fromtableName'--请注意字符串前一定要加N%BfplhE1a AN&)OIDc 2、字段名,表名,数据库名之类作为变量时,必须用动态SQLH2k3./Ip :=r
2、8#8a eg:}"
3、M#MB declare@fnamevarchar(20)
4、WH$1[Gv7 set@fname='FiledName'@#D[C;VvrE Select@fnamefromtableName--错误,不会提示错误,但结果为固定值FiledName,并非所要。J!_C^,7# Exec('select'+@fname+'fromtableName')--请注意加号前后的单引号的边上加空格Adve]kD$5 w/r;'> 当然将字符串改成变量的形式也可:?Gf%y declare@fnamevarchar(20)r~j>XK3 set@fname='FiledName'--设置字段名!i9mD!G w
5、(IfnsP declare@svarchar(1000)7A_?mu set@s='select'+@fname+'fromtableName'ezCY_T9m Exec(@s)--成功W=Q!_X$ execsp_executesql@s--此句会报错vOwTKUb By4-}_T+A 2#sv-v6oH declare@sNvarchar(1000)--注意此处改为nvarchar(1000)"A^!?UOE set@s='select'+@fname+'fromtableName'(/Hv6n3Z& Exec(@s)--成功ix9Hh
6、{ execsp_executesql@s--此句正确]7UXt*w LBf0at0 3、输出参数"kz/7E/A %+>n ~p.M^M`7E declare@numint,3^={CUh @sqlsnvarchar(4000)cI)7、w4P set@sqls='select@a=count(*)fromtableName'2c],:zB;% execsp_executesql@sqls,N'@aintoutput',@numoutput*JAz^&/ select@numj3SSiM Ft*Ow%Djzm 此外,如果想要在SQL语句字符串中使用单引号''可以使用''''SQLServer数据库中经常用到的identity列发布时间:2008.03.2404:59 来源:赛迪网 作者:Alice【赛迪网-IT技术报道】SQLServer中,经常会用到Identity标识列,这种自增长的8、字段操作起来的确是比较方便。但它有时还会带来一些麻烦。示例一:当表中被删除了某些数据的时候,自增长列的编号就不再是一个连线的数列。这种时候我们可以用以下方案来解决。SETIDENTITY_INSERT[TABLE][ON9、OFF]允许将显式值插入表的标识列中,当设置为ON时,这时可能在INSERT操作时手工指定插入到标识列中的编号,同时必须在操作完成后,将IDENTITY_INSERT还原成OFF,否则下次插入的时候必须指定编号,那不然就无法完成INSERT操作。示例二:当表中的记录被全部删除,但此时标识列的值越来越大的时候,如果不加以重置,它还会无休止的增长。这个时候我们10、就要用到:DBCCCHECKIDENT(TABLE,[RESEED11、NORESEED],[1])将把指定表的种子值强制重设为1。然而,你可能不想将种子重设为1,在这种情况下,你可以用你想用的种子值替代第三个参数。有时候你可能想知道当前的种子,而不是想重设种子,这时你就要用到NORESEED,而不用再去顾忌第三个参数。“一网打尽”通用SQL数据库的查询语句(1)发布时间:2008.01.0404:40 来源:赛迪网 作者:20933通用SQL数据库的查询语句:(注释:本文中Transact-SQL查询只包
7、w4P set@sqls='select@a=count(*)fromtableName'2c],:zB;% execsp_executesql@sqls,N'@aintoutput',@numoutput*JAz^&/ select@numj3SSiM Ft*Ow%Djzm 此外,如果想要在SQL语句字符串中使用单引号''可以使用''''SQLServer数据库中经常用到的identity列发布时间:2008.03.2404:59 来源:赛迪网 作者:Alice【赛迪网-IT技术报道】SQLServer中,经常会用到Identity标识列,这种自增长的
8、字段操作起来的确是比较方便。但它有时还会带来一些麻烦。示例一:当表中被删除了某些数据的时候,自增长列的编号就不再是一个连线的数列。这种时候我们可以用以下方案来解决。SETIDENTITY_INSERT[TABLE][ON
9、OFF]允许将显式值插入表的标识列中,当设置为ON时,这时可能在INSERT操作时手工指定插入到标识列中的编号,同时必须在操作完成后,将IDENTITY_INSERT还原成OFF,否则下次插入的时候必须指定编号,那不然就无法完成INSERT操作。示例二:当表中的记录被全部删除,但此时标识列的值越来越大的时候,如果不加以重置,它还会无休止的增长。这个时候我们
10、就要用到:DBCCCHECKIDENT(TABLE,[RESEED
11、NORESEED],[1])将把指定表的种子值强制重设为1。然而,你可能不想将种子重设为1,在这种情况下,你可以用你想用的种子值替代第三个参数。有时候你可能想知道当前的种子,而不是想重设种子,这时你就要用到NORESEED,而不用再去顾忌第三个参数。“一网打尽”通用SQL数据库的查询语句(1)发布时间:2008.01.0404:40 来源:赛迪网 作者:20933通用SQL数据库的查询语句:(注释:本文中Transact-SQL查询只包
此文档下载收益归作者所有