SET 选项
下表提供了 MicrosoftSQL Server 支持的 SET 选项以及相应数据库和服务器选项的按字母顺序排序的列表。
SET 选项 |
数据库选项 |
服务器选项 |
默认设置 |
---|---|---|---|
无 |
无 |
不可用 |
|
ANSI_NULL_DEFAULT |
user options 指定默认设置 |
OFF |
|
ANSI_NULLS |
user options 指定默认设置 |
OFF |
|
ANSI_PADDING |
user options 指定默认设置 |
ON |
|
ANSI_WARNINGS |
user options 指定默认设置 |
OFF |
|
ARITHABORT |
user options 指定默认设置 |
OFF |
|
无 |
user options 指定默认设置 |
OFF |
|
CONCAT_NULL_YIELDS_NULL |
无 |
OFF |
|
无 |
无 |
OFF |
|
CURSOR_CLOSE ON_COMMIT |
user options 指定默认设置 |
OFF |
|
无 |
无 |
7 |
|
无 |
无 |
mdy |
|
无 |
无 |
NORMAL |
|
无 |
无 |
OFF |
|
无 |
无 |
OFF |
|
无 |
无 |
OFF |
|
无 |
|
OFF |
|
无 |
user options 指定默认设置 |
OFF |
|
无 |
无 |
us_english |
|
无 |
无 |
无限制 |
|
无 |
user options 指定默认设置 |
OFF |
|
无 |
无 |
OFF |
|
NUMERIC_ROUNDABORT |
无 |
OFF |
|
无 |
无 |
OFF |
|
无 |
无 |
OFF |
|
无 |
query governor cost limit |
OFF |
|
带引号的标识符 |
user options 指定默认设置 |
OFF |
|
无 |
无 |
OFF |
|
无 |
无 |
OFF |
|
无 |
无 |
OFF |
|
无 |
无 |
OFF |
|
无 |
无 |
OFF |
|
无 |
无 |
OFF |
|
无 |
无 |
OFF |
|
无 |
无 |
OFF |
|
无 |
无 |
OFF |
|
无 |
无 |
OFF |
|
无 |
无 |
不适用 |
|
无 |
无 |
OFF |
分析时 SET 选项和执行时 SET 选项
SET 选项何时生效取决于此选项是分析时选项还是执行时选项。分析时选项在分析期间分析出文本中的选项时生效,而不管是否受流语句的控制。执行时选项在指定这些选项的代码执行期间生效。如果在执行 SET 语句前执行失败,则未设置此选项。如果在执行 SET 语句后执行失败,则已设置此选项。
QUOTED_IDENTIFIER、PARSEONLY、OFFSETS 和 FIPS_FLAGGER 选项均为分析时选项。所有其他 SET 选项均为执行时选项。
批处理或存储过程内出现的 SET QUOTED_IDENTIFIER 和 SET ANSI_NULLS 语句不影响该批处理或存储过程。相反,用于批处理或存储过程内部语句的设置则是在创建批处理或存储过程时生效的设置。
SET 选项的持续时间
本节介绍了 SET 选项的持续时间。
脚本中由用户设置的 SET 选项在重置或服务器中用户的会话终止之前有效。
在存储过程或触发器内设置的 SET 选项在该存储过程或触发器内重置或控制返回到调用该存储过程或触发器的代码之前有效。
支持 MARS 的连接维护一组默认的 SET 选项值。在该连接下执行批处理时,将把默认的 SET 选项值复制到请求的环境。批处理结束后,该环境将复制回会话的默认设置。通过这种方法,在同一连接下同时执行的多个批处理将在独立的 SET 选项环境下运行。
注意 在支持 MARS 的连接下,如果同时执行多个批处理且它们会修改批处理执行环境,则得到的默认连接环境取决于最后执行完的批处理。
除非进行显式重置,否则来自所有更高级别的代码中的 SET 选项值在存储过程或触发器内有效。
动态 SQL 批处理内由用户设置的 SET 选项仅在该批处理的持续时间内有效。
除非进行显式或隐式重置,否则为连接设置的 SET 选项在连接到其他数据库之后有效。
注意 还需注意,用户连接到数据库时,根据服务器选项 user options 以前指定的值或应用于所有 ODBC 和 OLE DB 连接的值,某些选项可能会自动设置为 ON。
快捷方式 SET 选项
Transact-SQL 提供 SET ANSI_DEFAULTS 语句作为设置下列 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
此快捷方式可重置这些选项的值。使用此快捷方式后设置的任何单个选项将覆盖此快捷方式所设置的相应值。
注意 |
---|
SET ANSI_DEFAULTS 并非设置符合 ISO 标准的所有选项。 |