美好的一天。我正在尝试在OPEN QUERY
和TRY
内执行CATCH
。我希望TRY
从远程服务器获取数据,如果连接失败;我想执行CATCH
。但是,错误将持续存在,而不会进入CATCH
。
我读到TRY
和CATCH
无法解决的某些错误。我做错了吗?尝试通过脚本找出查询连接是否已连接或失败的任何其他方法?如果失败则去执行其他操作(警告数据库没有基本连接)
非常感谢任何帮助。
BEGIN try
SELECT *
FROM Openquery([xxx-xxx\xx_xx], 'select * from xxx.dbo.xxx')
END try
BEGIN catch
SELECT 2 as STATUS
END catch
我故意拼错服务器或关闭服务器时收到的错误。 (如果我自己运行OPEN QUERY它工作正常。我已经做了sp_add链接服务器FYI)
Msg 7202, Level 11, State 2, Line 33
Could not find server 'xxx-xxx\xx_xx' in sys.servers. Verify that the correct server name was specified. If necessary, execute the stored procedure sp_addlinkedserver to add the server to sys.servers.
答案 0 :(得分:1)
if exists (Select name from sys.servers where name=yourname)
SELECT *
FROM Openquery([xxx-xxx\xx_xx], 'select * from xxx.dbo.xxx')
else
SELECT 2 as STATUS