4、,这些标识符包括早期版本中未保留而在 SQL Server 2000 中保留的字。可用分隔标识符引用对象直到可改变其名称。 当使用未被列为合法标识符的字符时。 SQL Server 允许在分隔标识符中使用当前代码页中的任何字符。但是,不加选择地在对象名称中使用特殊字符将使 SQL 语句和脚本难以阅读和维护。 Transact-SQL 所使用的分隔符类型: 说明 分隔符仅用于标识符。分隔符不能用于关键字,不论它们在 SQL Server 中是否被标记为保留字。 被引用的标识符用双引号
5、(") 分隔开: SELECT * FROM "Blanks in Table Name" 括在括号中的标识符用方括号 ([ ]) 分隔: SELECT * FROM [Blanks In Table Name] 仅当 QUOTED_IDENTIFIER 选项设置为 ON 时,被引用的标识符才有效。默认情况下,当用于 SQL Server 的 Microsoft OLE DB 提供程序和 SQL Server ODBC 驱动程序连接时,将 QUOTED_IDENTIFIER 设置为 ON。默认情况下,
6、DB-Library 不将 QUOTED_IDENTIFIER 设置为 ON。不管使用何种接口,个别应用程序或用户可随时更改设置。SQL Server 提供了多种方法来指定该选项。例如,在 SQL Server 企业管理器和 SQL 查询分析器中,该选项可在对话中设置。在 Transact-SQL 中,可以使用 SET QUOTED_IDENTIFIER、sp_dboption 的 quoted identifier 选项或 sp_configure 的 user options 选项将此选项设为多种级别。 当 Q
7、UOTED_IDENTIFIER 为 ON 时,对于 SQL 语句中的双引号和单引号 (') 的使用,SQL Server 遵循 SQL-92 规则: 双引号只能用于分隔标识符,不能用于分隔字符串。 为保持与现有应用程序的兼容性,SQL Server 并不完全强制该规则。如果字符串没有超过标识符的长度,则该字符串可包含在双引号内。但不建议这样做。 单引号必须用来包含字符串,不能用于分隔标识符。 如果字符串包含单引号,则需要在单引号前再增加一个单引号: SELECT * FROM "My Tab
8、le" WHERE "Last Name" = 'O''Brien' 当 QUOTED_IDENTIFIER 为 OFF 时,对于双引号和单引号的使用,SQL Server 遵循如下规则: 引号不能用于分隔标识符,而是用括号作为分隔符。 单引号或双引号可用于包含字符串。 如果使用双引号,