IF-ELSE 블록이있는 SQL 코드가있는 경우가 있습니다. IF 부분의 코드에 도달해서는 안되지만 SQL을 실행할 때 여전히 오류가 발생합니다. 코드에서 내가 연결된 서버를 먼저 테스트하고 실패 할 경우 @reval
을 1로 설정하고 ELSE
블록을 실행하여 연결된 서버를 쿼리해야하는 IF
블록의 코드를 방지해야하지만이 오류가 발생합니다.SQL IF 블록 코드가 실행되지 않아도 오류가 발생합니다.
Msg -1, Level 16, State 1, Line 0 SQL Server Network Interfaces: Error Locating Server/Instance Specified [xFFFFFFFF].
? INSERT SQL 문을 파악하기
declare @clientCode VARCHAR(7)
set @clientCode = '8001299'
declare @year INT
set @year = 2013
DECLARE @retVal INT
-- test connectivity with linked database server
BEGIN TRY
EXEC @retVal = sys.sp_testlinkedserver N'ATLAS'
END TRY
BEGIN CATCH
SET @retval = SIGN(@@ERROR)
END CATCH
IF @retval = 0 -- connection attempt successful
BEGIN
고마웠다 오류
SET @contIndex = (SELECT ContIndex FROM ATLAS.Engine_sp.dbo.tblEngagement WHERE ClientCode = @clientCode)
END
ELSE -- could not connect
BEGIN
-- execute code to pull from linked server
END
게시 된 코드의 90 %는 부적합합니다. 문제를 설명하는 데 필요한 최소한으로 줄이십시오. [SSCCE] (http://sscce.org) – Bohemian
@ 보헤미안에 대해 읽어보십시오 - 귀하는 조언을하고 하향 투표를하지 못했습니다. – RoastBeast
문제를 진단하기위한 노력이 없었기 때문에 나는 다운 받았다. 기본적으로 전체 코드와 오류를 붙여 넣은 다음 코드를 디버깅하도록 요청했습니다. 이 사이트가 작동하는 방식이 아닙니다. 내 이전 조언은 여전히 유효합니다. 만약 당신이 그것을 따라하면 아마 당신 스스로 문제를 해결할 것입니다. – Bohemian