活动
SET ANSI_DEFAULTS (Transact-SQL)
适用于:Microsoft Fabric 的 Microsoft Fabric
Warehouse 中的 SQL Server
Azure SQL 托管实例
Azure Synapse
Analytics Analytics Platform System (PDW)
SQL 分析终结点
控制一组可共同指定某种 ISO 标准行为的 SQL Server 设置。
SET ANSI_DEFAULTS { ON | OFF }
SET ANSI_DEFAULTS ON
ANSI_DEFAULTS 是服务器端设置,可以为所有客户端连接启用此行为。 客户端通常请求连接或会话初始化的设置。 用户不应修改服务器设置。
若要更改客户端的行为,用户应该使用特定于客户端的方法,如 SQL_COPT_SS_PRESERVE_CURSORS
。 有关详细信息,请参阅 SQLSetConnectAttr。
当启用 (ON) 时,此选项将启用下列 ISO 设置:
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
这些 ISO 标准 SET 选项共同定义了用户工作会话、运行触发器或存储过程执行期间的查询处理环境。 不过,这些 SET 选项并未包括遵守 ISO 标准所需的所有选项。
处理计算列、筛选索引和索引视图上的索引时,这些默认值(ANSI_NULLS
、 ANSI_PADDING
、 ANSI_WARNINGS
和 QUOTED_IDENTIFIER
)中的四个必须设置为 ON。 这些默认值是七个 SET 选项之一,在计算列、筛选索引和索引视图上创建和更改索引时,必须为其分配所需的值。 其他 SET 选项 ARITHABORT
(ON)、CONCAT_NULL_YIELDS_NULL
(ON) 和 NUMERIC_ROUNDABORT
(OFF)。 有关具有索引视图、筛选索引和计算列索引的必需 SET 选项设置的详细信息,请参阅 使用 SET 语句时的注意事项。
SQL Server 的 SQL Server Native Client ODBC 驱动程序和 SQL Server Native Client OLE DB 提供程序在连接时会自动将 ANSI_DEFAULTS 设置为 ON。 然后,驱动程序和访问接口将 CURSOR_CLOSE_ON_COMMIT 和 IMPLICIT_TRANSACTIONS 设置为 OFF。 CURSOR_CLOSE_ON_COMMIT
和 IMPLICIT_TRANSACTIONS
的 OFF 设置可以在 ODBC 数据源、ODBC 连接属性或 OLE DB 连接属性(它们在连接到 SQL Server 之前在应用程序中设置)中进行配置。 对于 ANSI_DEFAULTS
应用程序的连接,ANSI_DEFAULTS 默认为 OFF。
当发出 SET ANSI_DEFAULTS 时,QUOTED_IDENTIFIER 将在分析时进行设置,而下列选项则在执行时进行设置:
SET ANSI_NULLS
SET ANSI_WARNINGS
SET ANSI_NULL_DFLT_ON
SET CURSOR_CLOSE_ON_COMMIT
SET ANSI_PADDING
SET IMPLICIT_TRANSACTIONS
要求 公共 角色具有成员身份。
以下示例将 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)