【发布时间】:2014-01-24 02:04:09
【问题描述】:
我有一个带有 IF-ELSE 块的 SQL 代码。 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
【问题讨论】:
-
90% 的发布代码是不相关的。将其减少到证明问题所需的最低限度。阅读SSCCE
-
@Bohemian - 你本可以给出你的建议而不是投反对票。
-
我投了反对票,因为没有努力诊断问题。您基本上粘贴了整个代码和错误,并要求我们调试您的代码。这不是这个网站的工作方式。我之前的建议仍然有效。如果您遵循它,您可能会自己解决问题。
-
@Bohemian - 我知道这个网站是如何运作的,我不会在没有事先研究的情况下提问,也不需要任何人来调试我的代码。我只是想要一些建议。
-
@Bohemian - 谢谢。
标签: sql sql-server sql-server-2012 linked-server ssms-2012