[SQL] 纯文本查看 复制代码 SET QUOTED_IDENTIFIER ON
GO
是什么意思?
语法
[SQL] 纯文本查看 复制代码 SET QUOTED_IDENTIFIER { ON | OFF }
注释
当 SET QUOTED_IDENTIFIER 为 ON 时,标识符可以由双引号分隔,而文字必须由单引号分隔。当 SETQUOTED_IDENTIFIER 为 OFF 时,标识符不可加引号,且必须遵守所有 Transact-SQL标识符规则。有关更多信息,请参见使用标识符。文字可以由单引号或双引号分隔。
当 SET QUOTED_IDENTIFIER 为 ON时,由双引号分隔的所有字符串都被解释为对象标识符。因此,加引号的标识符不必遵守 Transact-SQL标识符规则。它们可以是保留关键字,并且可以包含 Transact-SQL标识符中通常不允许的字符。不能使用双引号分隔文字字符串表达式,而必须用单引号括住文字字符串。如果单引号 (')是文字字符串的一部分,则可以由两个单引号 ('') 表示。当对数据库中的对象名使用保留关键字时,SETQUOTED_IDENTIFIER 必须为 ON。
当 SET QUOTED_IDENTIFIER 为OFF(默认值)时,表达式中的文字字符串可以由单引号或双引号分隔。如果文字字符串由双引号分隔,则可以在字符串中包含嵌入式单引号,如省略号。
当在计算列或索引视图上创建或操作索引时,SET QUOTED_IDENTIFIER 必须为 ON。如果 SETQUOTED_IDENTIFIER 为 OFF,则计算列或索引视图上带索引的表上的 CREATE、UPDATE、INSERT 和DELETE 语句将失败。有关计算列上的索引视图和索引所必需的 SET 选项设置的更多信息,请参见 SET 中的"使用 SET语句时的注意事项"。
SET ANSI_NULLS ON是什么意思?
SQL-92 标准要求在对空值进行等于 (=) 或不等于 (<>)比较时取值为 FALSE。当 SET ANSI_NULLS 为 ON 时,即使 column_name 中包含空值,使用 WHEREcolumn_name = NULL 的 SELECT 语句仍返回零行。即使 column_name 中包含非空值,使用 WHEREcolumn_name <> NULL 的 SELECT语句仍会返回零行。
当 SET ANSI_NULLS 为 OFF 时,等于 (=) 和不等于(<>) 比较运算符不遵从 SQL-92 标准。使用 WHEREcolumn_name = NULL 的 SELECT 语句返回 column_name 中包含空值的行。使用 WHEREcolumn_name <> NULL 的 SELECT语句返回列中包含非空值的行。此外,使用 WHERE column_name<> XYZ_value 的 SELECT 语句返回所有不为XYZ_value 也不为 NULL 的行。
参考文章:http://blog.sina.com.cn/s/blog_5e7917a50100bzq6.html |