2009-08-12 31 views
8

Szybkie pytania ...Ustaw opcje .... gdzie są one przechowywane

Gdzie są wartości dla opcji ustawionych przechowywane w bazie danych dla SP, Func, Trigger, etc? Jeśli różnią się od ustawień globalnych?

SET ARITHABORT NA
SET CONCAT_NULL_YIELDS_NULL ON
SET QUOTED_IDENTIFIER ON
zestaw ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
SET NUMERIC_ROUNDABORT OFF

wiem globalne ustawienia bazy danych są przechowywane w widoku sys.databases. Ale co z każdym Stored Proc lub innymi obiektami.

zastosowania [SomeDB]
GO

SET ARITHABORT OFF
SET CONCAT_NULL_YIELDS_NULL OFF
SET QUOTED_IDENTIFIER OFF
GO

TWORZENIE usp_SampleProc
CO
UŻYCIEM
- wykonuje pewne działania
END

widzę, że para mogła być retrived używając:

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

gdzie są reszta ... czy są one nawet przechowywane dla każdego zapisanego Proc ..... w ogóle?
Dzięki,
_Ub

Odpowiedz

6

tych, które stosuje się do procedur, jak ANSI_NULLS i QUOTED_IDENTIFIER są w sys.sql_modules, gdzie są pobierane z przez OBJECTPROPERTY.

Te, które odnoszą się do baz danych i są ustawione na bazę danych, są dostępne pod numerem sys.databases.

Te, które dotyczą sesji, są dostępne pod numerem sys.dm_exec_sessions.

W końcu to, co faktycznie zostanie zastosowane, zależy od ustawienia, a reguły nadpisywania i ustawień domyślnych są co najmniej skomplikowane. Niektóre sterowniki klienta automatycznie włączają/wyłączają opcje. Nie te same opcje, a nie te same wartości domyślne, zależą od klienta do klienta (ODBC, OleDB, SNAC, SqlClient itp.). Parametr generic rule jest:

  1. Opcja bazy danych zastępuje opcję instancji.
  2. Opcja SET zastępuje opcję bazy danych.
  3. Wskazówka przesłania opcję USTAW.
+0

dzięki za szybką odpowiedź, ale ma tylko uses_quoted_identifier is_schema_bound uses_database_collation is_recompiled ... co z resztą. _Ub –

+0

co z USTAW ARITHABORT NA USTAW ANSI_WARNINGS ON dla określonej procedury. Ci dwaj są tym, czym się bardziej martwię? –

+1

Tylko ustawienia QUOTED_IDENTIFER i ANSI_NULLS są przechwytywane w czasie tworzenia procedury. Wszystkie pozostałe ustawienia będą miały zastosowanie do bieżącej wartości sesji. –

Powiązane problemy