1

我正在使用 SQL2008R2 并且有一个大型存储过程,其中包含一段 SQL 将记录插入到 LINKED 服务器(也是 SQL2008R2)。如果链接服务器碰巧关闭、不可用等,我希望能够继续使用存储过程。

最好的方法是什么?可以举个例子吗?

IF @InsertToLinkServer = 1
BEGIN
INSERT INTO [Server].[Database].[dbo].[Table]
(field1) VALUES (value1)
END

ContinueHereifFailed:
Other sql statements....
4

1 回答 1

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
于 2013-04-10T14:45:15.390 回答