본문 바로가기
프로그래밍/TSQL

[MSSQL] 인스턴스 확인, DB명 확인, 서버 확인

by 정리 습관(★arranging★) 2020. 4. 28.
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

감사합니다.

댓글