안녕하세요.
IF 절 안에서 링크드 서버 사용할 때의 질문입니다.
IF 절에서 첫번째 조건에 해당하지 않고 ELSE절의 구문이 실행될 때 (@@SERVERNAME 결과가 'BBB'가 나올 경우)
아래 노란색 LINKED SERVER가 로그인이 안되면 에러가 발생합니다.
컴파일 시에 링크드 서버가 있는지 정도는 확인하는것이 맞는 것 같은데,
실행되지 않는 구문도 링크드 서버가 항상 로그인이 되어야 하는 것인가요??
전문가의 답변 부탁드립니다.
감사합니다.
참고로 SQL 버전은 (Microsoft SQL Server 2008 (SP1) - 10.0.2531.0 (X64) Mar 29 2009 10:11:52 Copyright (c) 1988-2008 Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) )
입니다.
DECLARE @SERVERNAME VARCHAR(20) = ''
SET @SERVERNAME = (SELECT @@SERVERNAME)
PRINT @SERVERNAME
IF @SERVERNAME = 'AAA'
BEGIN
PRINT 'AAA'
SELECT *
FROM
OPENQUERY([AAA],'
SELECT A.ZCLS01 AS BOND_NO,
A.ZCLS02 AS S_CODE,
left(A.ZCLOSING,1) AS CLOSE_YN,
A.ZCLOS_DAT AS CLOSE_DATE
FROM DVM..ZTFI5420 AS A
')
END
ELSE
BEGIN
PRINT 'BBB'
SELECT *
FROM
OPENQUERY([BBB],'
SELECT A.ZCLS01 AS BOND_NO,
A.ZCLS02 AS S_CODE,
left(A.ZCLOSING,1) AS CLOSE_YN,
A.ZCLOS_DAT AS CLOSE_DATE
FROM PRD..ZTFI5420 AS A
')
END
Comment 1
-
catchv
2018.05.29 15:17
동적 쿼리를 사용하시면 됩니다.