IT/MSSQL

MSSQL 시스템변수 정의 및 예제

!? 2024. 2. 24.

 

 

MSSQL에는 여러 시스템 변수가 있습니다. 이 시스템 변수들은 서버, 세션, 트랜잭션 등과 관련된 정보를 저장하고 제공하는 역할을 합니다.

아래에서 몇 가지 주요한 MSSQL 시스템 변수에 대해 자세히 설명해 드리겠습니다.

 

1. 시스템변수 정리

 

@@ROWCOUNT 직전에 실행된 SQL 문에 의해 영향을 받는 행의 수를 반환하는 변수
@@IDENTITY 자동 증가된 열 (Identity 열)에 대한 마지막으로 삽입된 행의 값을 반환하는 변수
@@ERROR 직전에 실행된 T-SQL 문의 오류 코드를 반환하는 변수
@@FETCH_STATUS CURSOR에서 FETCH 문을 실행한 후의 상태를 반환하는 변수
@@VERSION 현재 MSSQL 서버의 버전 정보를 반환하는 변수
@@SERVERNAME 현재 연결된 서버의 이름을 반환하는 변수
@@LANGUAGE 현재 세션이 사용하는 언어를 반환하는 변수
@@SPID 현재 세션의 고유한 식별자인 세션 ID를 반환하는 변수
@@CONNECTIONS 현재 MSSQL 서버에 대한 활성 연결 수를 반환하는 변수
@@CPU_BUSY 현재 MSSQL 서버의 CPU 사용량을 백분율로 반환하는 변수
DATEPART 시간 요소를 추출니다.
DATEFROMPARTS 지정된 연도, 월, 일을 기반으로 날짜를 생성합니다.
SYSDATETIME 현재 시스템의 날짜와 시간을 반환합니다. DATETIME2 형식을 사용합니다.
FORMAT 날짜와 시간을 원하는 형식으로 출력할 수 있습니다.

 

 

 

 

2. 시스템수 정의 및 예제

 

1. @@ROWCOUNT

- 직전에 실행된 SQL 문에 의해 영향을 받는 행의 수를 반환하는 변수입니다. 주로 데이터 경 문 (INSERT, UPDATE, DELETE)과 함께 사용됩니다.

예를 들어, 아래의 예제에서는 업데이트된 행의 수를 확인합니다.

UPDATE MyTable SET Status = 'Active' WHERE Category = 'A';
SELECT @@ROWCOUNT AS AffectedRows;

 

2. @@IDENTITY

- @@IDENTITY는 자동 증가된 열 (Identity 열)에 대한 마지막으로 삽입된 행의 값을 반환하는 변수입니다. 이 변수는 INSERT 문이 실행된 후에 사용할 수 있습니다.

INSERT INTO MyTable (Name) VALUES ('John');
SELECT @@IDENTITY AS LastInsertedID;

 

3. @@ERROR

- @@ERROR는 직전에 실행된 T-SQL 문의 오류 코드를 반환하는 변수입니다. 오류가 발생하지 않으면 0을 반환하고, 오류가 발생하면 오류 코드를 반환합니다.

UPDATE MyTable SET Status = 'Active' WHERE Category = 'A';
IF @@ERROR <> 0
BEGIN
    PRINT '오류가 발생했습니다.';
END

 

4. @@FETCH_STATUS

- @@FETCH_STATUS는 CURSOR에서 FETCH 문을 실행한 후의 상태를 반환하는 변수입니다. FETCH 문은 CURSOR에서 행을 가져오는 데 사용됩니다.

DECLARE @Name VARCHAR(50);
DECLARE myCursor CURSOR FOR SELECT Name FROM MyTable;
OPEN myCursor;
FETCH NEXT FROM myCursor INTO @Name;
WHILE @@FETCH_STATUS = 0
BEGIN
    PRINT @Name;
    FETCH NEXT FROM myCursor INTO @Name;
END
CLOSE myCursor;
DEALLOCATE myCursor;

 

5. @@VERSION

- @@VERSION은 현재 MSSQL 서버의 버전 정보를 반환하는 변수입니다. 이를 통해 현재 사용 중인 MSSQL 버전을 확인할 수 있습니다.

SELECT @@VERSION AS SQLServerVersion;

 

6. @@SERVERNAME

- @@SERVERNAME은 현재 연결된 서버의 이름을 반환하는 변수입니다.

SELECT @@SERVERNAME AS ServerName;

 

7. @@LANGUAGE

- @@LANGUAGE는 현재 세션이 사용하는 언어를 반환하는 변수입니다.

SELECT @@LANGUAGE AS SessionLanguage;

 

 

 

 

 

 

8. @@SPID

- @@SPID는 현재 세션의 고유한 식별자인 세션 ID를 반환하는 변수입니다.

SELECT @@SPID AS SessionID;

 

9. @@CONNECTIONS

- @@CONNECTIONS는 현재 MSSQL 서버에 대한 활성 연결 수를 반환하는 변수입니다. 예를 들어,

SELECT @@CONNECTIONS AS ActiveConnections;

 

10. @@CPU_BUSY

- @@CPU_BUSY는 현재 MSSQL 서버의 CPU 사용량을 백분율로 반환하는 변수입니다. 예를 들어,

SELECT @@CPU_BUSY AS CPUBusyPercentage;

 

 

위의 예제들은 MSSQL 시스템 변수의 추가적인 사용 사례를 보여줍니다. 이러한 시스템 변수들은 서버와 세션의 상태 및 구성 정보를 확인하고 모니터링하는 데 유용합니다.

 

댓글