选项(查询 Execution-SQL Server-ANSI 页)

这些 ANSI(ISO)标准 SET 选项共同定义在用户查询、触发器运行或存储过程执行期间的查询处理环境。 但是,这些 SET 选项不包括符合 ISO 标准所需的所有选项。 使用此页可以指定Microsoft SQL Server 将使用 ISO 标准中指定的所有或部分设置运行查询。 对这些选项的更改仅适用于新的 SQL Server 查询。 若要更改当前查询的选项,请单击“查询”菜单上的“查询选项”,或在“SQL Server 查询”窗口中右键单击并选择“查询选项”。 在“ 查询选项 ”对话框中的“ 执行”下,单击 “ANSI”。

UI 元素列表

SET ANSI_DEFAULTS
选中此复选框可选中所有默认 ISO 设置。 默认情况下,并非所有 ISO 选项都处于选中状态。

SET QUOTED_IDENTIFIER
选中此复选框后,SQL Server 遵循有关引号分隔标识符和文本字符串的 ISO 规则。 用引号分隔的标识符可以是 Transact-SQL 保留关键字,也可以包含标识符的 Transact-SQL 语法规则通常不允许的字符。 默认情况下此复选框处于选中状态。

SET ANSI_NULL_DFLT_ON
设置此值后,在 CREATE TABLE 或 ALTER TABLE 语句期间未显式定义为 NOT NULL 的所有用户定义的数据类型或列默认允许 null 值。 默认情况下此复选框处于选中状态。

SET IMPLICIT_TRANSACTIONS
选中此复选框后,SET IMPLICIT_TRANSACTIONS将连接设置为隐式事务模式。 清除此复选框后,连接将恢复为自动提交事务模式。 若要查看选择时启动隐式事务的语句,请参阅 SET IMPLICIT_TRANSACTIONS (Transact-SQL)。 默认情况下会清除此检查框。

设置游标关闭提交
选中此复选框后,提交事务时,任何打开的游标都会自动关闭(符合 ISO)。 当此值设置为 OFF 时,游标在事务边界之间保持打开状态,仅在连接关闭或显式关闭时关闭。 默认情况下会清除此检查框。

设置 ANSI_PADDING
控制列存储比列定义大小短的值的名称的方式,以及如何在charvarcharbinaryvarbinary数据类型中存储带尾随空白的值。 此设置仅影响新列的定义。 创建列后,SQL Server 会根据创建列时的设置存储值。 对此设置的后续更改不会影响现有列。 默认情况下此复选框处于选中状态。

SET ANSI_WARNINGS
为多个错误条件指定 ISO 标准行为:

  • 选中此复选框后,如果聚合函数(如 SUM、AVG、MAX、MIN、STDEV、STDEVP、VAR、VARP 或 COUNT)中出现 null 值,则会生成警告消息。 当 OFF 时,不会发出任何警告。

  • 取消选择此复选框后,除以零错误和算术溢出错误会导致事务回滚,并生成错误消息。 当为 OFF 时,除以零和算术溢出错误会导致返回的值为 null。 如果尝试对字符Unicode二进制列执行INSERT或UPDATE操作,而新值的长度超过列的最大大小时,则会导致出现除以零或算术溢出错误,从而返回空值。 如果 SET ANSI_WARNINGS 为 ON,则会根据 ISO 标准取消 INSERT 或 UPDATE 操作。 对于字符列,将忽略尾随空白;对于二进制列,将忽略尾随空值。 当设置为 OFF 时,数据将被截断为列的大小,并且语句执行成功。

默认情况下此复选框处于选中状态。

SET ANSI_NULLS

  • 指定等于(=)和不等于(<>)比较运算符在与 null 值一起使用时的 ISO 合规行为。 选择 SET ANSI_NULLS后,与 null 值的所有比较结果为 UNKNOWN,符合 ISO 的行为。 如果未选择 SET ANSI_NULLS,则所有数据与 null 值的比较结果为 TRUE。 默认情况下此复选框处于选中状态。

重置为默认值
将此页上的所有值重置为原始默认值。