我有一個情況下,我有一個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].
我從內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
--THE以下INSERT 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
90%的發佈代碼是無關緊要的。將其降低到展示問題所需的最低限度。閱讀關於[SSCCE](http://sscce.org) – Bohemian
@Bohemian - 你可能已經給出了你的建議,並沒有給予反對票。 – RoastBeast
我低估了,因爲沒有努力來診斷問題。你基本上粘貼了你的整個代碼和錯誤,並要求我們調試你的代碼。這不是這個網站的工作原理。我以前的建議仍然存在。如果你遵循它,你可能會自己解決問題。 – Bohemian