欢迎来到天天文库
浏览记录
ID:39553875
大小:110.00 KB
页数:19页
时间:2019-07-06
《动态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 declar
4、e@fnamevarchar(20)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@f
5、name='FiledName'--设置字段名!i9mD!G w(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
6、'+@fname+'fromtableName'(/Hv6n3Z& Exec(@s)--成功ix9Hh{ execsp_executesql@s--此句正确]7UXt*w LBf0at0 3、输出参数"kz/7E/A %+>n7、f$9`I=j"> ~p.M^M`7E declare@numint,3^={CUh @sqlsnvarchar(4000)cI)8、y列【赛迪网-IT技术报道】SQLServer中,经常会用到Identity标识列,这种自增长的字段操作起来的确是比较方便。但它有时还会带来一些麻烦。示例一:当表中被删除了某些数据的时候,自增长列的编号就不再是一个连线的数列。这种时候我们可以用以下方案来解决。SETIDENTITY_INSERT[TABLE][ON9、OFF]允许将显式值插入表的标识列中,当设置为ON时,这时可能在INSERT操作时手工指定插入到标识列中的编号,同时必须在操作完成后,将IDENTITY_INSERT还原成OFF,否则下次插入的时候必须指定编号,那不然就无法完10、成INSERT操作。示例二:当表中的记录被全部删除,但此时标识列的值越来越大的时候,如果不加以重置,它还会无休止的增长。这个时候我们就要用到:DBCCCHECKIDENT(TABLE,[RESEED11、NORESEED],[1])将把指定表的种子值强制重设为1。然而,你可能不想将种子重设为1,在这种情况下,你可以用你想用的种子值替代第三个参数。有时候你可能想知道当前的种子,而不是想重设种子,这时你就要用到NORESEED,而不用再去顾忌第三个参数。“一网打尽”通用SQL数据库的查询语句(1)通用SQL数据库的查询语句:(注释:本文中Tran12、sact-SQL查询只包括选择列表、FROM子句和WHERE子句。)一、简单查询简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或
7、f$9`I=j"> ~p.M^M`7E declare@numint,3^={CUh @sqlsnvarchar(4000)cI)8、y列【赛迪网-IT技术报道】SQLServer中,经常会用到Identity标识列,这种自增长的字段操作起来的确是比较方便。但它有时还会带来一些麻烦。示例一:当表中被删除了某些数据的时候,自增长列的编号就不再是一个连线的数列。这种时候我们可以用以下方案来解决。SETIDENTITY_INSERT[TABLE][ON9、OFF]允许将显式值插入表的标识列中,当设置为ON时,这时可能在INSERT操作时手工指定插入到标识列中的编号,同时必须在操作完成后,将IDENTITY_INSERT还原成OFF,否则下次插入的时候必须指定编号,那不然就无法完10、成INSERT操作。示例二:当表中的记录被全部删除,但此时标识列的值越来越大的时候,如果不加以重置,它还会无休止的增长。这个时候我们就要用到:DBCCCHECKIDENT(TABLE,[RESEED11、NORESEED],[1])将把指定表的种子值强制重设为1。然而,你可能不想将种子重设为1,在这种情况下,你可以用你想用的种子值替代第三个参数。有时候你可能想知道当前的种子,而不是想重设种子,这时你就要用到NORESEED,而不用再去顾忌第三个参数。“一网打尽”通用SQL数据库的查询语句(1)通用SQL数据库的查询语句:(注释:本文中Tran12、sact-SQL查询只包括选择列表、FROM子句和WHERE子句。)一、简单查询简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或
8、y列【赛迪网-IT技术报道】SQLServer中,经常会用到Identity标识列,这种自增长的字段操作起来的确是比较方便。但它有时还会带来一些麻烦。示例一:当表中被删除了某些数据的时候,自增长列的编号就不再是一个连线的数列。这种时候我们可以用以下方案来解决。SETIDENTITY_INSERT[TABLE][ON
9、OFF]允许将显式值插入表的标识列中,当设置为ON时,这时可能在INSERT操作时手工指定插入到标识列中的编号,同时必须在操作完成后,将IDENTITY_INSERT还原成OFF,否则下次插入的时候必须指定编号,那不然就无法完
10、成INSERT操作。示例二:当表中的记录被全部删除,但此时标识列的值越来越大的时候,如果不加以重置,它还会无休止的增长。这个时候我们就要用到:DBCCCHECKIDENT(TABLE,[RESEED
11、NORESEED],[1])将把指定表的种子值强制重设为1。然而,你可能不想将种子重设为1,在这种情况下,你可以用你想用的种子值替代第三个参数。有时候你可能想知道当前的种子,而不是想重设种子,这时你就要用到NORESEED,而不用再去顾忌第三个参数。“一网打尽”通用SQL数据库的查询语句(1)通用SQL数据库的查询语句:(注释:本文中Tran
12、sact-SQL查询只包括选择列表、FROM子句和WHERE子句。)一、简单查询简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或
此文档下载收益归作者所有