2009-08-12 32 views
8

preguntas rápidas ...OPCIONES SET .... dónde están almacenados

¿Dónde están los valores de las opciones SET almacenan en la base de datos para un SP, Func, Gatillo, etc? Si son diferentes de la configuración global?

SET ARITHABORT EN
SET CONCAT_NULL_YIELDS_NULL EN
QUOTED SET EN
ANSI_NULLS EN
ANSI_PADDING SET EN
ANSI_WARNINGS SET en
NUMERIC_ROUNDABORT SET OFF

Sé que la configuración global de una base de datos son almacenado en la vista sys.databases. Pero, ¿qué ocurre con cada Stored Proc u otros objetos?

USO [SomeDB]
GO

ARITHABORT SET OFF
SET CONCAT_NULL_YIELDS_NULL OFF
SET QUOTED_IDENTIFIER OFF
GO

CREATE usp_SampleProc
AS
COMENZAR
- realizar alguna acción
FIN

veo que una pareja puede ser retrived usando:

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

donde están los demás ... ¿están almacenados para cada Stored Proc ... en absoluto?
gracias,
_Ub

Respuesta

6

las que se aplican a los procedimientos, como ANSI_NULLS y QUOTED_IDENTIFIER están en sys.sql_modules, en el que se recuperan de por OBJECTPROPERTY.

Los que se aplican a las bases de datos y se establecen por base de datos están disponibles en sys.databases.

Los que se aplican a las sesiones están disponibles en sys.dm_exec_sessions.

Al final, lo que realmente se aplica depende de la configuración a la configuración, y las reglas de sobrescritura y valores predeterminados son complejas por decir lo menos. Algunos controladores de clientes activan/desactivan opciones automáticamente. No son las mismas opciones y no los mismos valores predeterminados, depende del cliente al cliente (ODBC, OleDB, SNAC, SqlClient, etc.). El generic rule es:

  1. Una opción de base de datos anula una opción de instancia.
  2. Una opción SET anula una opción de base de datos.
  3. Una sugerencia anula una opción SET.
+0

gracias por la rápida respuesta, pero sólo tiene uses_quoted_identifier is_schema_bound uses_database_collation is_recompiled ... ¿qué pasa con el resto. _Ub –

+0

¿qué pasa con SET ARITHABORT ON CONFIGURAR ANSI_WARNINGS ON para un procedimiento en particular. estos dos son lo que más me preocupa? –

+1

Solo se capturan las configuraciones QUOTED_IDENTIFER y ANSI_NULLS en el momento de creación del procedimiento. Todas las demás configuraciones, se aplicará el valor de la sesión actual. –

Cuestiones relacionadas