我正在使用SQL2008R2并且有一个大型存储过程,其中包含一段SQL,它将记录存储到LINKED服务器(也就是SQL2008R2)。如果链接服务器出现故障,不可用等,我希望能够继续存储过程。
最好的方法是什么?可以提供一个例子吗?
IF @InsertToLinkServer = 1
BEGIN
INSERT INTO [Server].[Database].[dbo].[Table]
(field1) VALUES (value1)
END
ContinueHereifFailed:
Other sql statements....
答案 0 :(得分:0)
尝试使用包裹在TRY / CATCH块中的动态sql
DECLARE @dsql nvarchar(max)
BEGIN TRY
SET @dsql = 'INSERT [Server].[Database].[dbo].[Table](field1) VALUES (value1)'
EXEC sp_executesql @dsql
END TRY
BEGIN CATCH
PRINT 'Error'
END CATCH