- 3
- 0
- 约2.52千字
- 约 4页
- 2017-06-08 发布于河南
- 举报
quotename的用法
SQL2005关于quotename的用法(转)
首先,sqlserver里的标识符有一定的规则,比如?create table abc 123 ... 那么中间含有空格,它不是符合规则的。 你会写做 create table [abc 123] .... 即以[]来定界标识符。quotename将 字串成为有效的标识符。 它有什么用呢? 我举个例子:
你有个表名字叫做 aa[]bb 当某些应用动态语句查询时 你如何写呢 exec select * from aa[]bb ?Xset @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 分隔符的 Unicode 字符串,分隔符的加入可使输入的字符串成为有效的 Microsoft SQL Server 2005 分隔标识符。
Transact-SQL 语法约定 QUOTENAME character_string [ , quote_character ] 参数
character_string
Unicode 字符数据构成的字符串。character_string 是 sysname 值。
quote_character
用作分隔符的单字符字符串。可以是单引号 、左方括号或右方括号 [ ] 或者英文双引号 。如果未指定 quote_character,则使用方括号。
返回类型
nvarchar 258
示例
以下示例接受字符串 abc[]def 并使用 [ 和 ] 字符来创建有效的 SQL Server 分隔标识符。 SELECT QUOTENAME abc[]def 下面是结果集: [abc[]]def]
1 row s affected 请注意,字符串 abc[]def 中的右方括号有两个,用于指示转义符。
为什么输出结果是:[abc[]]def]呢?
[abc[]]def] 分解成 []]中间的]是表示右边的]是原样输出也就是说]]就表示] 就跟中的要用来表示一样
就是说和]]转义后得到-- ] 和两个单引号转义成一个单引号是一个道理
quotename函数看分隔符是什么因为默认是[ ] ,如果用的是 作分界符,那么 SELECT QUOTENAME abc[]def
就不会发生转义了.
select QUOTENAME abcdef, --分隔符是两个单引号-- abcdefselect QUOTENAME abc]def --分隔符是]-- [abc]]def]select QUOTENAME abc def, --分隔符是 -- abc def
示例:
create table tab [i[]]d] int ;goselect name from sys.columns where object_id object_id tab ;/* i[]d */
也就是说:SELECT QUOTENAME abc[]def ,quotename函数默认分隔符是[ ] 所以在给quotename abc[]def 需要对abc后的[]进行转义,如果quotename abc[]def, 也就是设置了分隔符为 就不会发生转义,该转义取决于分隔符.
简单的说假设你要在
您可能关注的文档
最近下载
- HGT 3704-2024《氟塑料衬里阀门通用技术条件》.pdf VIP
- SMETA确保员工合法工作权的核查程序-SEDEX验厂专用文件 .pdf
- 000528_2019_#CSR_柳工_2019年企业社会责任报告_2020-04-29.pdf VIP
- 普通生态学全套课件.pptx
- 1.8 怎样买最省钱 课件 2025-2026学年北师大版数学三年级下册.pptx VIP
- 《人形机器人性能检测试验方法》.pdf VIP
- 护士专用护理篇——高血压临床路径.doc VIP
- T_CHAS 10-2-22—2023(中国医院质量安全管理第2-22部分:患者服务疼痛治疗).pdf
- 药物临床试验项目质控检查情况报告表.doc VIP
- 半桥隔离式buck变换器的设计与仿真.docx VIP
原创力文档

文档评论(0)