SET ANSI_WARNINGS OFF 的范围

Ziy*_*ang 5 sql-server

如果我SET ANSI_WARNINGS OFF在一个存储过程中去掉一个警告,它只对该存储过程起作用,对其他存储过程没有影响,这意味着在其他存储过程中,该警告ANSI_WARNINGS仍然存在。如果我想为所有存储过程关闭它怎么办?为什么默认开启?我怎么会知道?

NOCOUNTsql server 中的其他设置(例如,)是否以相同的方式工作?

非常感谢。

如果有人可以与我分享有关这些设置的共同特征的文章,那就太好了。

Igo*_*nko 2

来自博尔:

SQL Server 包含 ANSI_WARNINGS 数据库选项。这相当于 SET ANSI_WARNINGS。当 SET ANSI_WARNINGS 为 ON 时,会引发被零除、字符串对于数据库列太大以及其他类似错误的错误或警告。当 SET ANSI_WARNINGS 为 OFF 时,不会引发这些错误和警告。模型数据库中 SET ANSI_WARNINGS 的默认值为 OFF。如果未指定,则应用 ANSI_WARNINGS 的设置。如果 SET ANSI_WARNINGS 为 OFF,SQL Server 将使用 sys.databases 目录视图中 is_ansi_warnings_on 列的值。

您可以在 BOL(在 Management Studio 中按 F1)或 MSDN http://msdn.microsoft.com/en-us/library/ms190368.aspx上阅读相关内容

NOCOUNT 的工作原理相同。