SqlServer中quotename用法与实例

SqlServer中quotename用法与实例,第1张

概述语法  QUOTENAME ( 'character_string' [ , 'quote_character' ] )  参数 'character_string' Unicode 字符数据构成的字符串。character_string 是 sysname 值。 'quote_character' 用作分隔符的单字符字符串。可以是单引号 (')、左方括号或右方括号 ([ ]) 或者英文双引号 (

语法 @H_419_9@ QUOTEname ( 'character_string' [,'quote_character' ] ) @H_419_9@ 参数@H_419_9@ 'character_string'@H_419_9@ Unicode 字符数据构成的字符串。character_string 是 sysname 值。@H_419_9@ 'quote_character'@H_419_9@ 用作分隔符的单字符字符串。可以是单引号 (')、左方括号或右方括号 ([ ]) 或者英文双引号 (")。如果未指定

quote_character,则使用方括号。@H_419_9@实验@H_419_9@quotename函数看分隔符默认是[ ] @H_419_9@ select quotename('df[]jls') 输出结果:[df[]]jls]@H_419_9@ select quotename('df[]jls',']') 输出结果:[df[]]jls]@H_419_9@ select quotename('df[]jls','') 输出结果:[df[]]jls]@H_419_9@ select quotename('df[]jls','''') 输出结果:'df[]jls'@H_419_9@ select quotename('df[]jls','}') 输出结果:{df[]jls}@H_419_9@ select quotename('df{}jls','}')  输出结果:{df{}}jls}@H_419_9@ 请注意,字符串 df[]jls 中的右方括号有两个,用于指示转义符。@H_419_9@ 为什么输出结果是:[df[]]jls]呢?@H_419_9@ [df[]]jls]@H_419_9@ 分解成 @H_419_9@ []]中间的]是表示右边的]是原样输出也就是说]]就表示] @H_419_9@ 就跟''中的'要用''来表示一样@H_419_9@ 就是说和]]转义后得到 ] 和两个单引号转义成一个单引号是一个道理@H_419_9@实际用途@H_419_9@ 简单来说吧@H_419_9@ 比如你有一个表,名字叫 index@H_419_9@ 你有一个动态查询,参数是表名@H_419_9@ declare @tbname varchar(256)@H_419_9@ set @tbname='index'@H_419_9@ ---查这个表里的数据:@H_419_9@ print('select * from '+@tbname)@H_419_9@ exec('select * from '+@tbname)@H_419_9@ --这样print出来的数据是@H_419_9@ select * from index@H_419_9@ 因为index是字键字,肯定出错,加上括号就可以了:@H_419_9@ select * from [index]@H_419_9@ 这便有了QUOTEname,即:@H_419_9@ print('select * from '+QUOTEname(@tbname))@H_419_9@ --结果:select * from [index]@H_419_9@ exec('select * from '+QUOTEname(@tbname))@H_419_9@ 或者说你的表名如果是abc 123话,直接查询一定会出错,而你由不得不把表名当做参数,这是你就可以使用quotename来进行转义@H_419_9@总结 quotename的主要作用就是当列名,表名,存储过程,等数据库对象需要一参数的形式传递是,为了确保参数的有效性你可以使用quotename来进行转义,当然也可以在两边加上‘[]’,但是这样写很明显会增加代码的复杂性

总结

以上是内存溢出为你收集整理的SqlServer中quotename用法实例全部内容,希望文章能够帮你解决SqlServer中quotename用法与实例所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1180004.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存