2011-12-12 4 views

답변

5

Determining SET Options for a Current Session in SQL Server

DECLARE @options INT 

SELECT @options = @@OPTIONS 

PRINT @options 
IF ((1 & @options) = 1) PRINT 'DISABLE_DEF_CNST_CHK' 
IF ((2 & @options) = 2) PRINT 'IMPLICIT_TRANSACTIONS' 
IF ((4 & @options) = 4) PRINT 'CURSOR_CLOSE_ON_COMMIT' 
IF ((8 & @options) = 8) PRINT 'ANSI_WARNINGS' 
IF ((16 & @options) = 16) PRINT 'ANSI_PADDING' 
IF ((32 & @options) = 32) PRINT 'ANSI_NULLS' 
IF ((64 & @options) = 64) PRINT 'ARITHABORT' 
IF ((128 & @options) = 128) PRINT 'ARITHIGNORE' 
IF ((256 & @options) = 256) PRINT 'QUOTED_IDENTIFIER' 
IF ((512 & @options) = 512) PRINT 'NOCOUNT' 
IF ((1024 & @options) = 1024) PRINT 'ANSI_NULL_DFLT_ON' 
IF ((2048 & @options) = 2048) PRINT 'ANSI_NULL_DFLT_OFF' 
IF ((4096 & @options) = 4096) PRINT 'CONCAT_NULL_YIELDS_NULL' 
IF ((8192 & @options) = 8192) PRINT 'NUMERIC_ROUNDABORT' 
IF ((16384 & @options) = 16384) PRINT 'XACT_ABORT' 
+0

내가 기대했던 것은 아닙니다! 단순한 한 줄 명령을 찾지 못했습니다. –

2
select 'DISABLE_DEF_CNST_CHK', case when (1 & @@options) = 1 then 1 else 0 end 
union 
select 'IMPLICIT_TRANSACTIONS', case when (2 & @@options) = 2 then 1 else 0 end 
union 
select 'CURSOR_CLOSE_ON_COMMIT', case when (4 & @@options) = 4 then 1 else 0 end 
union 
select 'ANSI_WARNINGS', case when (8 & @@options) = 8 then 1 else 0 end 
union 
select 'ANSI_PADDING', case when (16 & @@options) = 16 then 1 else 0 end 
union 
select 'ANSI_NULLS', case when (32 & @@options) = 32 then 1 else 0 end 
union 
select 'ARITHABORT', case when (64 & @@options) = 64 then 1 else 0 end 
union 
select 'ARITHIGNORE', case when (128 & @@options) = 128 then 1 else 0 end 
union 
select 'QUOTED_IDENTIFIER', case when (256 & @@options) = 256 then 1 else 0 end 
union 
select 'NOCOUNT', case when (512 & @@options) = 512 then 1 else 0 end 
union 
select 'ANSI_NULL_DFLT_ON', case when (1024 & @@options) = 1024 then 1 else 0 end 
union 
select 'ANSI_NULL_DFLT_OFF', case when (2048 & @@options) = 2048 then 1 else 0 end 
union 
select 'CONCAT_NULL_YIELDS_NULL', case when (4096 & @@options) = 4096 then 1 else 0 end 
union 
select 'NUMERIC_ROUNDABORT', case when (8192 & @@options) = 8192 then 1 else 0 end 
union 
select 'XACT_ABORT', case when (16384 & @@options) = 16384 then 1 else 0 end; 
-1

DBCC USEROPTIONS (SQL 2008 이상)

https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-useroptions-transact-sql

출력 :

textsize 2147483647 
    language us_english 
    dateformat mdy 
    datefirst 7 
    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 
+0

스택 오버플로에 오신 것을 환영합니다! 이것은 이론적으로 질문에 대답 할 수 있지만 여기에 대답의 핵심 부분을 포함하고 참조 용 링크를 제공하는 것이 바람직합니다 (// meta.stackoverflow.com/q/8259). –