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 设置。

Transact-SQL 语法约定

语法

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_NULLSANSI_PADDINGANSI_WARNINGSQUOTED_IDENTIFIER)中的四个必须设置为 ON。 这些默认值是创建和更改计算列、过滤索引和索引视图索引时必须分配所需值的七个 SET 选项之一。 其他 SET 选项是 ARITHABORT (开)、 CONCAT_NULL_YIELDS_NULL (开)和 NUMERIC_ROUNDABORT (关)。 关于索引 SET 视图、筛选索引和计算列索引所需的选项设置的更多信息,请参见“ 使用 SET 语句时的注意事项”。

连接时,SQL Server Native Client ODBC 驱动程序和 SQL Server Native Client OLE DB Provider for SQL Server 会自动设置为 ANSI_DEFAULTS ON。 司机和服务提供者随后将 和 IMPLICIT_TRANSACTIONS 设置为CURSOR_CLOSE_ON_COMMIT关闭。 CURSOR_CLOSE_ON_COMMITIMPLICIT_TRANSACTIONS 的 OFF 设置可以在 ODBC 数据源、ODBC 连接属性或 OLE DB 连接属性(它们在连接到 SQL Server 之前在应用程序中设置)中进行配置。 对于 ANSI_DEFAULTS 应用程序的连接,ANSI_DEFAULTS 默认为 OFF。

当 SETSET 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)