quotename的用法

原创 2011年01月25日 10:19:00

首先,sqlserver里的标识符有一定的规则,比如你
create table abc 123(...)
那么中间含有空格,它不是符合规则的。

你会写做 create table [abc 123](....)
即以[]来定界标识符。

quotename
将 字串成为有效的标识符。

它有什么用呢? 我举个例子:


你有个表名字叫做 aa[]bb

当某些应用动态语句查询时 你如何写呢
exec('select * from aa[]bb')
X

set @sql='select * from ' + quotename('aa[]bb')
exec(@sql)

当然你也可以直接写出转义的写法

select * from [aa[]]bb]

也就是说,quotename 使函数中的输入成为一个有效的标识符。
比如上例中 aa[]bb 不是一个有效的标识符。

还有一点就是quotename函数有几种写法:
quotename('aa')
生成的有效的标识符为 [aa]
quotename('aa','')
生成的有效的标识符为 [aa]
quotename('aa','''')
生成的有效的标识符为 'aa'

解释2

简单来说吧
比如你有一个表,名字叫 index

你有一个动态查询,参数是表名
declare @tbname varchar(256)
set @tbname='index'
---查这个表里的数据:
print('select * from '+@tbname)
exec('select * from '+@tbname)

--这样print出来的数据是
select * from index

因为index是关键字,肯定出错,加上括号就可以了:
select * from [index]

这便有了QUOTENAME,即:
print('select * from '+QUOTENAME(@tbname))
--结果:select * from [index]
exec('select * from '+QUOTENAME(@tbname))

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

SQL2005关于quotename的用法(转)

首先,sqlserver里的标识符有一定的规则,比如  你 create table abc 123(...) 那么中间含有空格,它不是符合规则的。 你会写做 create table...

SQL2005关于quotename的用法(转)

转自:http://www.cnblogs.com/Fskjb/archive/2010/04/19/1715105.html首先,sqlserver里的标识符有一定的规则,比如 你 creat...

quotename用法

首先,sqlserver里的标识符有一定的规则,比如  你 create table abc 123(...) 那么中间含有空格,它不是符合规则的。 你会写做 create table...

SVN基本用法.doc

  • 2017-06-20 16:11
  • 283KB
  • 下载

Linux中find命令用法全汇总,看完就没有不会用的!

Linux 查找命令是Linux系统中最重要和最常用的命令之一。查找用于根据与参数匹配的文件指定的条件来搜索和查找文件和目录列表的命令。查找可以在各种条件下使用,您可以通过权限,用户,组,文件类型,日...

select命令用法详解

  • 2016-03-09 00:29
  • 12KB
  • 下载

安卓的属性动画基本用法(一)

休假归来,十几天的婚假过得真快,时间不管对谁都是不够用的,我们能做的只能是珍惜时间。     上篇文章讲解了补间动画,这次我们来看看属性动画,先给大家看看两张效果图,大家看看其中的不同:     第一...

WinDbg用法详解(带书签)

  • 2016-04-13 22:55
  • 1.43MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)