/*----------------------------------------SQL DATABASE: SQL SERVER 2008AUTHER: CCDATE: 2012-06-04Description:双引号(") : 用于表示引用的标识符中括号([]): 用于表示括号中的标识符t-sql中常在下列情况下使用分隔符a. 对象名称或对象名称的组成部分中包含保留字时b. 使用其它特殊的字符时-------------------------------------------*/USE TESTGOIF OBJECT_ID('tempdb..#t') IS NOT NULL DROP TABLE #tGOCREATE TABLE #T(ID INT IDENTITY(1,1), TT NVARCHAR(10) )/*-------------------------------当 QUOTED_IDENTIFIER 为 ON 时,对于SQL语句中的双引号和单引号 (')的使用,SQL Server 遵循SQL-92: 双引号只能用于分隔标识符,不能用于分隔字符串。 为保持与现有应用程序的兼容性,SQL Server 并不完全强制该规则。如果字符串没有超过标识符的长度,则该字符串可包含在双引号内。但不建议这样做。 单引号必须用来包含字符串,不能用于分隔标识符。 如果字符串包含单引号,则需要在单引号前再增加一个单引号: --------------------------*/SET QUOTED_IDENTIFIER ONINSERT INTO #T(TT) VALUES ('AA+AA')INSERT INTO #T(TT) VALUES ('AA''AA')/*ID TT1 AA+AA2 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 OFFINSERT 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