服务器配置:用户选项

适用范围:SQL Server

本文介绍如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 中配置 user options 服务器配置选项。 该 user options 选项指定所有用户的全局默认值。 将建立一个用户工作会话期间使用的默认查询处理选项的列表。 使用 user options 此选项可以更改选项的 SET 默认值(如果服务器的默认设置不适用)。

用户可以使用语句替代这些默认值 SET 。 可以动态配置 user options 新登录名。 更改设置 user options后,新的登录会话将使用新设置。 当前登录会话不受影响。

建议

下表列出了和描述其 user options配置值。 并非所有配置值都是相互兼容的。 例如, ANSI_NULL_DFLT_ON ANSI_NULL_DFLT_OFF 不能同时设置。

配置 说明
1 DISABLE_DEF_CNST_CHK 控制执行期间或延迟的约束检查。
2 IMPLICIT_TRANSACTIONS 对于 DBLIB 网络库连接,控制执行语句时是否隐式启动事务。 此设置 IMPLICIT_TRANSACTIONS 对 ODBC 或 OLEDB 连接没有影响。
4 CURSOR_CLOSE_ON_COMMIT 控制执行提交操作后游标的行为。
8 ANSI_WARNINGS 控制截断和 NULL 聚合警告。
16 ANSI_PADDING 控制固定长度变量的填充。
32 ANSI_NULLS 在使用相等运算符时控制 NULL 的处理。
64 ARITHABORT 在查询执行过程中发生溢出或被零除错误时终止查询。
128 ARITHIGNORE NULL 查询期间发生溢出或除零错误时返回。
256 QUOTED_IDENTIFIER 对表达式进行求值时区别单引号和双引号。
512 NOCOUNT 关闭执行每个语句后返回的报告受影响的行数的消息。
1024 ANSI_NULL_DFLT_ON 将会话的行为更改为使用 ANSI 兼容的空性。 未显式定义为空性的新列允许使用空值。
2048 ANSI_NULL_DFLT_OFF 将会话的行为更改为不使用 ANSI 兼容的空性。 在没有显式可为 null 的情况下定义的新列不允许 null 值。
4096 CONCAT_NULL_YIELDS_NULL NULL与字符串连接NULL值时返回。
8192 NUMERIC_ROUNDABORT 表达式中出现精度降低时生成错误。
16384 XACT_ABORT 如果 Transact-SQL 语句引发运行时错误,则回滚事务。

user options 位置与位位置 @@OPTIONS相同。 每个连接都有自己的 @@OPTIONS 函数,它表示配置环境。 登录到 SQL Server 实例时,用户会收到一个将当前 user options@@OPTIONS分配给的默认环境。 执行 SET 语句会影响 user options 会话 @@OPTIONS 函数中的相应值。 在此设置更改后创建的所有连接都将收到新值。

权限

默认情况下,所有用户都具备不带参数或仅带第一个参数的 sp_configure 的执行权限。 若要使用两个参数执行 sp_configure 来更改配置选项或运行 RECONFIGURE 语句,用户必须拥有 ALTER SETTINGS 服务器级别权限。 ALTER SETTINGS 权限由 sysadmin 和 serveradmin 固定服务器角色隐式拥有。

使用 SQL Server Management Studio

  1. 在对象资源管理器中,右键单击服务器并选择 “属性”

  2. 选择“连接”节点。

  3. “默认连接选项” 框中,选择一个或多个属性以便为所有已连接的用户配置默认查询处理选项。

默认情况下,不配置用户选项。

使用 Transact-SQL

  1. 连接到 数据库引擎。

  2. 在标准栏上,选择“新建查询”。

  3. 将以下示例复制并粘贴到查询窗口中,然后选择“执行”。 此示例演示如何使用sp_configure来配置user options更改服务器选项的设置ANSI_WARNINGS

    USE master;
    GO
    
    EXECUTE sp_configure 'user options', 8;
    GO
    
    RECONFIGURE;
    GO
    

跟进:配置用户选项配置选项后

该设置将立即生效,无需重新启动服务器。