У меня есть случай, когда у меня есть код SQL с блоком IF-ELSE. Код в части IF не должен быть достигнут, но я все еще получаю сообщение об ошибке при выполнении SQL. В коде, который я сначала тестирую для связанного сервера, и когда это не удается, @reval
устанавливается в 1, а блок ELSE
должен выполняться и избегать кода в блоке IF
, который должен запрашивать связанный сервер, но я получаю эту ошибку:
Msg -1, Level 16, State 1, Line 0
SQL Server Network Interfaces: Error Locating Server/Instance Specified [xFFFFFFFF].
Я запускаю запрос из SSMS 2012. Почему возникает эта ошибка?
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
--СЛЕДУЮЩАЯ ВСТАВКА SQL-оператора ВЫЗЫВАЕТ ОШИБКУ
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