MsSQL
发布时间:2022-05-16 发布网站:大佬教程 code.js-code.com
大佬教程收集整理的这篇文章主要介绍了quotename函数的理解,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_
673_4@
首先,sqlserver里的标识符有一定的规则,比如 你
create table abc 123(...)
那么中间含有空格,它不是符合规则的。
你会写做 create table [abc 123](....)
即以[]来定界标识符。
quotename将 字串成为有效的标识符。
它有什么用呢? 我举个例子。
你有个表名字叫做 aa[]bb
当某些应用动态语句查询时 你如何写呢
exec('select * from aa[]bb')
?
set @sql='SELEct * from ' + quotename('aa[]bb')
exec(@sql)
当然你也可以直接写出转义的写法
SELEct * from [aa[]]bb]
也就是说,quotename 使函数中的输入成为一个有效的标识符。
比如上例中 aa[]bb 不是一个有效的标识符。
@H_
673_4@
@H_
673_4@
@H_
673_4@
@H_
673_4@
简单来说吧比如你有一个表,名字叫 index 你有一个动态查询,
@H_
673_4@
参数是表名
@H_
673_4@
declare @tbname varchar(@H_874_95@256) set @tbname='index'
@H_
673_4@
---查这个表里的数据:
@H_
673_4@
print('SELEct * from '+@tbname)
@H_
673_4@
exec('SELEct * from '+@tbname)
@H_
673_4@
--这样print出来的数据是
@H_
673_4@
SELEct * from index
@H_
673_4@
因为index是字键字,肯定出错,加上括号就可以了:
@H_
673_4@
SELEct * from [index]
@H_
673_4@
这便有了QUOTename,即:
@H_
673_4@
print('SELEct * from '+QUOTename(@tbname))
@H_
673_4@
--结果:SELEct * from [index]
@H_
673_4@
exec('SELEct * from '+QUOTename(@tbname))
大佬总结
以上是大佬教程为你收集整理的quotename函数的理解全部内容,希望文章能够帮你解决quotename函数的理解所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。