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
감사합니다.
'프로그래밍 > TSQL' 카테고리의 다른 글
[MSSQL] 마이그레이션 ( 2000에서 상위 버전으로 ) (0) | 2020.07.28 |
---|---|
[MSSQL] BCP 취소하기 (0) | 2020.06.29 |
[MSSQL] 저장 프로시저, 함수, 트리거 또는 뷰의 최대 중첩 수준(32) 처리 방법 (0) | 2020.04.16 |
[MSSQL] 문자열 비교하기 ( 동일한 부분만 리턴하기 ) (0) | 2020.04.14 |
[MSSQL] MDF, LDF 이동 / DB 상위 버전->하위 버전으로 이동 시 오류 발생 (0) | 2020.02.21 |
댓글