Wenn man sich mit einer Anwendung zum SQL-Server verbindet, dann kann und sollte man über die Sitzungsseinstellungen das Verhalten des SQL-Servers konfigurieren. Das ist recht kompliziert, weil
Die für eine Session tatsächlich geltenden Optionen kann man auf zwei Arten herausbekommen. Entweder auf die "harte Tour": @@OPTIONS enthält die Werte in kodierter Form. Um sie im Klartext zu bekommen, kann man sich behelfen.
select
name as "SetOption",
(case when @@options&number=number then 1 else 0 end) as "Status"
from master..spt_values
where type=(select type
from master..spt_values
where number=0 and name='@@options')
and number != 0
Das Ergebnis sieht beispielsweise so aus:
SetOption Status
======= =====
disable_def_cnst_check 0
implicit_transactions 0
cursor_close_on_commit 0
ansi_warnings 1
ansi_padding 1
ansi_nulls 1
arithabort 1
arithignore 0
quoted_identifier 1
nocount 0
ansi_null_dflt_on 1
ansi_null_dflt_off 0
concat_null_yields_null 1
numeric_roundabort 0
xact_abort 0
Alternativ kann man auch DBCC verwenden. Hier werden nur die Optionen angezeigt, die tatsächlich aktiv sind. Ein ARITHIGNORE = OFF wird also nicht angezeigt.
dbcc useroptions
Wie man sieht, werden aber auch so nützliche Sachen wie DATEFORMAT oder LANGUAGE angezeigt:
SetOption Value
======= =====
textsize 2147483647
language Deutsch
dateformat dmy
datefirst 1
lock_timeout -1
quoted_identifier SET
arithabort SET
ansi_null_dflt_on SET
ansi_warnings SET
ansi_padding SET
ansi_nulls SET
concat_null_yields_null SET
isolation level read committed