Transact-SQL 参考

SET ANSI_DEFAULTS

控制一组可共同指定某些 SQL-92 标准行为的 Microsoft® SQL Server™ 设置。

语法

SET ANSI_DEFAULTS { ON | OFF }

注释

当启用 (ON) 时,该选项将启用下列 SQL-92 设置:

SET ANSI_NULLS SET CURSOR_CLOSE_ON_COMMIT
SET ANSI_NULL_DFLT_ON SET IMPLICIT_TRANSACTIONS
SET ANSI_PADDING SET QUOTED_IDENTIFIER
SET ANSI_WARNINGS  

这些 SQL-92 标准 SET 选项共同为用户工作会话、运行的触发器或存储过程定义执行期间的查询处理环境。然而,这些 SET 选项不包括遵从 SQL-92 标准所需的所有选项。

在处理计算列和索引视图上的索引时,必须将这四个默认选项(ANSI_NULLS、ANSI_PADDING、ANSI_WARNINGS 和 QUOTED_IDENTIFIER)设置为 ON。这些默认选项是在计算列和索引视图上创建和操作索引时必须赋给所需值的七个 SET 选项中的一部分。另外三个 SET 选项是:ARITHABORT (ON)、CONCAT_NULL_YIELDS_NULL (ON) 和 NUMERIC_ROUNDABORT (OFF)。有关计算列上的索引视图和索引所必需的 SET 选项设置的更多信息,请参见 SET 中的"使用 SET 语句时的注意事项"。

SQL Server ODBC 驱动程序和用于 SQL Server 的 Microsoft OLE DB 提供程序在连接时自动将 ANSI_DEFAULTS 设置为 ON。然后,驱动程序和提供程序将 CURSOR_CLOSE_ON_COMMIT 和 IMPLICIT_TRANSACTIONS 设置为 OFF。SET CURSOR_CLOSE_ON_COMMIT 和 SET IMPLICIT_TRANSACTIONS 的 OFF 设置可以在 ODBC 数据源、ODBC 连接特性或 OLE DB 连接属性(它们在连接到 SQL Server 之前在应用程序中设置)中进行配置。对来自 DB-Library 应用程序的连接,SET ANSI_DEFAULTS 默认为 OFF。

当发出 SET ANSI_DEFAULTS 时,SET QUOTED_IDENTIFIER 在分析时设置,下列选项则在执行时设置:

SET ANSI_NULLS SET ANSI_WARNINGS
SET ANSI_NULL_DFLT_ON SET CURSOR_CLOSE_ON_COMMIT
SET ANSI_PADDING SET IMPLICIT_TRANSACTIONS

权限

SET ANSI_DEFAULTS 权限默认授予所有用户。

示例

下例设置 SET ANSI_DEFAULTS ON,并使用 DBCC USEROPTIONS 语句显示受影响的设置。

-- SET ANSI_DEFAULTS ON.
SET ANSI_DEFAULTS ON
GO
-- Display the current settings.
DBCC USEROPTIONS
GO
-- SET ANSI_DEFAULTS OFF.
SET ANSI_DEFAULTS OFF
GO

请参见

DBCC USEROPTIONS

SET

SET ANSI_NULL_DFLT_ON

SET ANSI_NULLS

SET ANSI_PADDING

SET ANSI_WARNINGS

SET CURSOR_CLOSE_ON_COMMIT

SET IMPLICIT_TRANSACTIONS

SET QUOTED_IDENTIFIER