T-SQL单双引号---分隔符相关

/*----------------------------------------
SQL DATABASE: SQL SERVER 2008
AUTHER:          CC
DATE:          2012-06-04

Description:
双引号(") : 用于表示引用的标识符
中括号([]): 用于表示括号中的标识符
t-sql中常在下列情况下使用分隔符
a. 对象名称或对象名称的组成部分中包含保留字时
b. 使用其它特殊的字符时
-------------------------------------------*/


USE TEST
GO

IF OBJECT_ID('tempdb..#t') IS NOT NULL
    DROP TABLE #t
GO

CREATE TABLE #T
(ID INT IDENTITY(1,1),
 TT NVARCHAR(10)
 )
/*-------------------------------
当 QUOTED_IDENTIFIER 为 ON  时,对于SQL语句中的双引号和单引号 (')的使用,SQL Server 遵循SQL-92:     
双引号只能用于分隔标识符,不能用于分隔字符串。     
为保持与现有应用程序的兼容性,SQL   Server   并不完全强制该规则。如果字符串没有超过标识符的长度,则该字符串可包含在双引号内。
但不建议这样做。   
单引号必须用来包含字符串,不能用于分隔标识符。     
如果字符串包含单引号,则需要在单引号前再增加一个单引号:  
--------------------------*/
SET QUOTED_IDENTIFIER ON

INSERT INTO #T(TT) VALUES ('AA+AA')
INSERT INTO #T(TT) VALUES ('AA''AA')
/*
ID    TT
1    AA+AA
2    AA'AA
*/
INSERT INTO #T(TT) VALUES  ("AA+AA")
--消息 207,级别 16,状态 1,第 4 行
--列名 'AA+AA' 无效。

select * from #T

/*---------------------------------------------
  当 QUOTED_IDENTIFIER 为 OFF 时,对于双引号和单引号的使用,SQL   Server遵循如下规则:        
  引号不能用于分隔标识符,而是用括号作为分隔符。          
  单引号或双引号可用于包含字符串。     
  如果使用双引号,嵌入的单引号不需要用两个单引号来表示:   
----------------------------------------------*/
SET QUOTED_IDENTIFIER OFF

INSERT INTO #T(TT) VALUES ("AA1+AA1");
INSERT INTO #T(TT) VALUES ("AA1'AA1");
INSERT INTO #T(TT) VALUES ('AA2+AA2');

select * from #T

注一个相关知识:http://www.cnblogs.com/ndxsdhy/archive/2010/12/02/1894545.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值