适用于: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 (开)、 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_COMMIT 和 IMPLICIT_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)