动态SQL语句基本语法.pdfVIP

  • 9
  • 0
  • 约6.38万字
  • 约 50页
  • 2021-09-28 发布于天津
  • 举报
学习 SQL 应知道的动态 SQL 语句基本语法 1 、普通 SQL 语句可以用 Exec 执行 eg: Select * from tableName Exec(select * from tableName) Exec sp_executesql Nselect * 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 Server 数据库中经常用到的 identity 列 发布时间: 2008.03.24 04:59 来源:赛迪网 作者: Alice 【赛迪网- IT 技术报道】 SQL Server 中,经常会用到 Identity 标识列,这种自增长的字 段操作起来的确是比较方便。但它有时还会带来一些麻烦。 示例一 :当表中被删除了某些数据的时候, 自增长列的编号就不再是一个连线的数列。 这种时候我们可以用以下方案来解决。 SET IDENTITY_INSERT [TABLE] [ON|OFF] 允许将显式值插入表的标识列中, 当设置为 ON 时,这时可能在 INSERT 操作时手工指 定插入到标识列中的编号,同时必须在操作完成后,将 IDENTITY_INSERT 还原成 OFF ,否 则下次插入的时候必须指定编号,那不然就无法完成 INSERT 操作。 示例二: 当表中的记录被全部删除,但此时标识列的值越来越大的时候,如果不加以重 置,它还会无休止的增长。这个时候我们就要用到: DBCC CHECKIDENT(TABLE, [RESEED|NORESEED], [1])

文档评论(0)

1亿VIP精品文档

相关文档