设置选项....它们存储在哪里

UB.*_*UB. 8 sql-server sql-server-2005

快速问题......

对于SP,Func,Trigger等,数据库中存储的SET OPTIONS的值在哪里?如果它们与全局设置不同?

设置CONETCAT_NULL_YIELDS_NULL上的SET ARITHABORT ON
SET
QUOTED_IDENTIFIER ON
SET ANSI_NULLS ON SET ANSI_PADDING
ON
SET ANSI_WARNINGS ON
SET NUMERIC_ROUNDABORT OFF

我知道数据库的全局设置存储在sys.databases视图中.但是对于每个存储过程或其他对象呢.

使用[SomeDB]
GO

SET ARITHABORT OFF
SET CONCAT_NULL_YIELDS_NULL OFF
SET QUOTED_IDENTIFIER OFF
GO

创建usp_SampleProc
AS
BEGIN
- 执行一些操作
END

我看到一对夫妇可以使用以下方式重新审核:

SELECT OBJECTPROPERTY(OBJECT_ID('Procedure_Name'),'ExecIsQuotedIdentOn')
SELECT OBJECTPROPERTY(OBJECT_ID('Procedure_Name'),'ExecIsAnsiNullsOn')

其余的......他们甚至存储了每个存储过程.....根本没有?
谢谢,
_Ub

Rem*_*anu 6

那些适用于程序的程序,例如ANSI_NULLS并且QUOTED_IDENTIFIERsys.sql_modules中,从中检索它们OBJECTPROPERTY.

适用于数据库并按数据库设置的那些可用于sys.databases.

那些适用于会议的人可以在sys.dm_exec_sessions.

最后实际应用的内容取决于从设置到设置,并且覆盖和默认的规则至少是复杂的.某些客户端驱动程序自动设置选项开/关.不同的选项和不同的默认值,取决于客户端到客户端(ODBC,OleDB,SNAC,SqlClient等).该通用规则是:

  1. 数据库选项会覆盖实例选项.
  2. SET选项会覆盖数据库选项.
  3. 提示会覆盖SET选项.