SET ANSI_DEFAULTS (Transact-SQL)
控制一组可共同指定某些 SQL-92 标准行为的 SQL Server 2005 设置。
语法
SET ANSI_DEFAULTS { ON | OFF }
备注
SET ANSI_DEFAULTS 是客户端不会修改的服务器端设置。客户端管理自己的设置。在默认情况下,这些设置与服务器设置相反。用户不应修改服务器设置。若要更改客户端行为,用户应使用 SQL_COPT_SS_PRESERVE_CURSORS。有关详细信息,请参阅 SQLSetConnectAttr。
当启用 (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 (Transact-SQL) 中的“使用 SET 语句时的注意事项”。
SQL Server 的 SQL 本机客户端 ODBC 驱动程序和 SQL 本机客户端 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_NULLS 默认为 OFF。
当发出 SET ANSI_DEFAULTS 时,ET QUOTED_IDENTIFIER 将在分析时设置,而下列选项则在执行时设置:
SET ANSI_NULLS |
SET ANSI_WARNINGS |
SET ANSI_NULL_DFLT_ON |
SET CURSOR_CLOSE_ON_COMMIT |
SET ANSI_PADDING |
SET IMPLICIT_TRANSACTIONS |
权限
要求具有 public 角色成员资格。
示例
下面的示例设置了 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 (Transact-SQL)
SET (Transact-SQL)
SET ANSI_NULL_DFLT_ON (Transact-SQL)
SET ANSI_NULLS (Transact-SQL)
SET ANSI_PADDING (Transact-SQL)
SET ANSI_WARNINGS (Transact-SQL)
SET CURSOR_CLOSE_ON_COMMIT (Transact-SQL)
SET IMPLICIT_TRANSACTIONS (Transact-SQL)
SET QUOTED_IDENTIFIER (Transact-SQL)