세션의 현재 SET 옵션에 대한 정보를 확인하려면 @@OPTIONS함수를 사용합니다. 제 PC에서 확인해보니 5496이라는 값이 나오는군요. 근데 5496이면 어떤 옵션이 설정되어 있을까요? MSDN에서는 NOCOUNT 옵션이 설정되어 있는지 확인하기 위해 다음과 같은 방법을 사용합니다.NOCOUNT에 해당하는 구성 값이 512이므로 512로 비트 AND 연산을 합니다. 각 구성옵션에 해당 하는 값은 MSDN user options 서버 구성 옵션 구성 항목에서 확인할 수 있습니다. 보다 쉽게 옵션을 확인하는 방법은 @@OPTIONS 리턴값을 이진수로 바꾼다음 각 비트가 1인지 확인하는 것입니다. 다음은 한번에 SET 옵션을 확인하는 방법입니다. 이진수로 바꾸는 방법은 여기를 참조하세요.
123SET
NOCOUNT
ON
IF @@OPTIONS & 512 > 0
RAISERROR (
'Current user has SET NOCOUNT turned on.'
, 1, 1)
제 컴퓨터에서 실행했을때 결과입니다.
123456789101112131415161718DECLARE
@
OPTION
VARCHAR
(32)
SET
@
OPTION
= REVERSE(DBO.FUNC_DEC2BIN(@@OPTIONS))
'SET DISABLE_DEF_CNST_CHK '
+
CASE
WHEN
SUBSTRING
(@
OPTION
, 1, 1) =
'1'
THEN
'ON'
ELSE
'OFF'
END
'SET IMPLICIT_TRANSACTIONS '
+
CASE
WHEN
SUBSTRING
(@
OPTION
, 2, 1) =
'1'
THEN
'ON'
ELSE
'OFF'
END
'SET CURSOR_CLOSE_ON_COMMIT '
+
CASE
WHEN
SUBSTRING
(@
OPTION
, 3, 1) =
'1'
THEN
'ON'
ELSE
'OFF'
END
'SET ANSI_WARNINGS '
+
CASE
WHEN
SUBSTRING
(@
OPTION
, 4, 1) =
'1'
THEN
'ON'
ELSE
'OFF'
END
'SET ANSI_PADDING '
+
CASE
WHEN
SUBSTRING
(@
OPTION
, 5, 1) =
'1'
THEN
'ON'
ELSE
'OFF'
END
'SET ANSI_NULLS '
+
CASE
WHEN
SUBSTRING
(@
OPTION
, 6, 1) =
'1'
THEN
'ON'
ELSE
'OFF'
END
'SET ARITHABORT '
+
CASE
WHEN
SUBSTRING
(@
OPTION
, 7, 1) =
'1'
THEN
'ON'
ELSE
'OFF'
END
'SET ARITHIGNORE '
+
CASE
WHEN
SUBSTRING
(@
OPTION
, 8, 1) =
'1'
THEN
'ON'
ELSE
'OFF'
END
'SET QUOTED_IDENTIFIER '
+
CASE
WHEN
SUBSTRING
(@
OPTION
, 9, 1) =
'1'
THEN
'ON'
ELSE
'OFF'
END
'SET NOCOUNT '
+
CASE
WHEN
SUBSTRING
(@
OPTION
, 10, 1) =
'1'
THEN
'ON'
ELSE
'OFF'
END
'SET ANSI_NULL_DFLT_ON '
+
CASE
WHEN
SUBSTRING
(@
OPTION
, 11, 1) =
'1'
THEN
'ON'
ELSE
'OFF'
END
'SET ANSI_NULL_DFLT_OFF '
+
CASE
WHEN
SUBSTRING
(@
OPTION
, 12, 1) =
'1'
THEN
'ON'
ELSE
'OFF'
END
'SET CONCAT_NULL_YIELDS_NULL '
+
CASE
WHEN
SUBSTRING
(@
OPTION
, 13, 1) =
'1'
THEN
'ON'
ELSE
'OFF'
END
'SET NUMERIC_ROUNDABORT '
+
CASE
WHEN
SUBSTRING
(@
OPTION
, 14, 1) =
'1'
THEN
'ON'
ELSE
'OFF'
END
'SET XACT_ABORT '
+
CASE
WHEN
SUBSTRING
(@
OPTION
, 15, 1) =
'1'
THEN
'ON'
ELSE
'OFF'
END
123456789101112131415SET
DISABLE_DEF_CNST_CHK
OFF
SET
IMPLICIT_TRANSACTIONS
OFF
SET
CURSOR_CLOSE_ON_COMMIT
OFF
SET
ANSI_WARNINGS
ON
SET
ANSI_PADDING
ON
SET
ANSI_NULLS
ON
SET
ARITHABORT
ON
SET
ARITHIGNORE
OFF
SET
QUOTED_IDENTIFIER
ON
SET
NOCOUNT
OFF
SET
ANSI_NULL_DFLT_ON
ON
SET
ANSI_NULL_DFLT_OFF
OFF
SET
CONCAT_NULL_YIELDS_NULL
ON
SET
NUMERIC_ROUNDABORT
OFF
SET
XACT_ABORT
OFF
Programming/C#
세션의 SET 옵션 확인하기
brent.lee
2017. 12. 8. 06:53
반응형
세션의 SET 옵션 확인하기
반응형