数据库选项

下表提供了 MicrosoftSQL Server 支持的数据库选项及相应 SET 和服务器选项的按字母顺序排序的列表。

数据库选项

SET 选项

服务器

选项

默认

设置

ANSI_NULL_DEFAULT

ANSI_NULL_DFLT_ON ANSI_NULL_DFLT_OFF

“用户选项”分配一个默认值。

OFF

ANSI_NULLS

ANSI_NULLS

“用户选项”分配一个默认值。

OFF

ANSI_WARNINGS

ANSI_WARNINGS

“用户选项”分配一个默认值。

OFF

AUTO_CREATE_STATISTICS

ON

AUTO_UPDATE_STATISTICS

ON

AUTO_CLOSE

FALSE1

AUTO_SHRINK

FALSE

CONCAT_NULL_YIELDS_NULL

CONCAT_NULL_YIELDS_NULL

OFF

CURSOR_CLOSE_ON_COMMIT

CURSOR_CLOSE_ON_COMMIT

“用户选项”分配一个默认值。

OFF

RESTRICTED_USER

FALSE

CURSOR_DEFAULT_LOCAL

FALSE

MERGE PUBLISH

FALSE

OFFLINE

FALSE

PUBLISHED

FALSE

QUOTED_IDENTIFIER

QUOTED_IDENTIFIER

“用户选项”分配一个默认值。

OFF

READ_ONLY

FALSE

RECURSIVE_TRIGGERS

FALSE

RECOVERY BULK_LOGGED

FALSE

SINGLE_USER

FALSE

SUBSCRIBED

TRUE

TORN_PAGE_DETECTION

 

TRUE

RECOVERY SIMPLE

TRUE

1 默认情况下,AUTO_CLOSE 在 SQL Server 2005 Express Edition 中设置为 TRUE。

新数据库的默认数据库选项在 model 数据库中定义。若要了解 model 数据库的默认设置,请参阅 model 数据库

更改数据库选项将强制重新编译高速缓存中的所有内容。

选项和数据库上下文

脚本的数据库上下文和脚本中的批处理由最近的连接决定。连接可以使用 Transact-SQL 中的 USE 语句显式设置,也可以使用其他环境(如 ODBC 和 OLE DB)中的隐式和显式方法显式设置。有关详细信息,请参阅选择数据库

当存储过程通过批处理或其他存储过程执行时,此存储过程便使用其所属数据库的选项设置来执行。例如,当存储过程 db1.dbo.sp1 调用存储过程 db2.dbo.sp2 时,sp1 根据 db1 的当前兼容级别设置执行,而 sp2 根据 db2 的当前兼容级别设置执行。

如果一个 Transact-SQL 语句引用多个数据库中的对象,则该语句将应用当前数据库上下文和当前连接上下文。