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 设置。
语法
SQL Server、Azure Synapse Analytics 中的无服务器 SQL 池和 Microsoft Fabric 的语法
SET ANSI_DEFAULTS { ON | OFF }
Azure Synapse Analytics 和 Analytics Platform System (PDW) 的语法
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)