加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SqlServer中的动态Sql

发布时间:2020-12-12 13:42:42 所属栏目:MsSql教程 来源:网络整理
导读:n年以前的笔记,发布出来,意义不大,仅供初学者参考 1 、普通SQL语句可以用Exec执行 eg: Select * from tableName? Exec('select * from tableName')? Exec sp_executesql N'select * from tableName' -- 请注意字符串前一定要加N? 2、字段名,表名,数据库
n年以前的笔记,发布出来,意义不大,仅供初学者参考 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? 此外,如果想要在SQL语句 字符串中使用 单引号 '' 可以 使用 ''''

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读