gpt4 book ai didi

sql-server - 检查链接的 SQL 服务器是否正在运行

转载 作者:行者123 更新时间:2023-12-02 19:25:34 24 4
gpt4 key购买 nike

我正在编写一个存储过程,它使用 4 点表示法在多个不同的链接服务器上运行 SELECT 查询。

问题是,如果其中一个链接服务器未运行,则查询会失败并出现错误 121('信号量超时期限已过期')。其他 SELECT 查询随后不会运行,因为此错误会停止查询的其余部分的执行。

我想检查@@ERROR,然后继续运行其他查询。

如果与链接服务器之一的连接失败,如何继续运行查询?

我使用的是 SQL 2012。

最佳答案

您是否尝试过用 TRY-CATCH 异常 block 包围您的单个调用?

     BEGIN TRY
--First Server Connection (Server1) 192.168.1.x
--If the connection isn't available it will raise an exception
exec sp_testlinkedserver @servername = Server1
--SQL statement here
END TRY
BEGIN CATCH
SELECT ERROR_MESSAGE()
END CATCH

BEGIN TRY
--Second Server Connection (Server2) 192.168.2.x
--If the connection isn't available it will raise an exception
exec sp_testlinkedserver @servername = Server2
--SQL statement here
END TRY
BEGIN CATCH
SELECT ERROR_MESSAGE()
END CATCH

sp_testlinkedserver会在执行代码之前在 try block 内引发异常,但不会停止存储过程的执行。

关于sql-server - 检查链接的 SQL 服务器是否正在运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15528902/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com