quotename函数的理解
2011-02-16 15:23
309 查看
首先,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 不是一个有效的标识符。
简单来说吧比如你有一个表,名字叫
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))
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 不是一个有效的标识符。
简单来说吧比如你有一个表,名字叫
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))
相关文章推荐
- 《理解 ES6》阅读整理:函数(Functions)(五)Name Property
- poj 2752 Seek the Name, Seek the Fame(理解KMP的失配函数!)
- poj 2752 Seek the Name, Seek the Fame(理解KMP的失配函数!) .
- 对new functionName()定义一个函数的理解
- 对new functionName()定义一个函数的理解
- SQL学习笔记之二:QUOTENAME函数
- SQL SERVER的QUOTENAME函数
- SQL学习笔记之二:QUOTENAME函数
- sql cast,convert,QUOTENAME,exec 函数学习记录
- of_find_property(np, name, lenp)等函数的理解
- sql server中quotename()函数的用法
- Class.forName函数的理解和使用(修改)
- SQL Server 中 EXEC 与 SP_EXECUTESQL 的区别 及动态查询中的标识符函数QUOTENAME
- sql cast,convert,QUOTENAME,exec 函数
- SQL SERVER 2008的QUOTENAME函数
- sql cast,convert,QUOTENAME,exec 函数学习记录
- SQL常用函数之二 QuoteName()
- sql cast,convert,QUOTENAME,exec 函数学习记录
- sql cast、 convert、QUOTENAME、exec 函数学习记录
- quotename()函数