프로그래밍/TSQL
[MSSQL] 인스턴스 확인, DB명 확인, 서버 확인
정리 습관(★arranging★)
2020. 4. 28. 10:14
728x90
MSSQL에서 동적 쿼리를 수행하다 보면 서버별, 인스턴스 별로 다른 동작을 수행해야하는 경우가 있습니다.
MSSQL에서는 @@SERVERNAME, @@SERVICENAME, DB_NAME()을 통해 서버 및 인스턴스의 명칭(이름)을 제공하고있습니다.
--■■ 설정된 서버의 명칭(이름)
SELECT @@SERVERNAME
--■■
--■■ 설정된 MSSQL서비스 명칭(이름)
SELECT @@SERVICENAME
--■■
--■■ 현재 쿼리가 수행중인 DB 인스턴스 명칭(이름)
SELECT DB_NAME()
--■■
--■■ 사용 예시
DECLARE @SERVER_NAME VARCHAR(200)
SET @SERVER_NAME = (SELECT @@SERVERNAME)
IF (@SERVER_NAME = 'TEST_SERVER')
BEGIN
INSERT INTO DBO.TEMP
SELECT NULL AS DATA_1
FROM [THIS_SERVER_SYNC_1].DBO.DATA
END
ELSE
BEGIN
INSERT INTO DBO.TEMP
SELECT NULL AS DATA_1
FROM OPENQUERY([OTHER_SERVER], 'SELECT DATA_1
FROM [OUTHER_SERVER_SYNC_1].DBO.DATA')
END
감사합니다.