存储过程中有链接服务器

0
create proc sw_sw
as

insert into table1
select * from [10.0.0.1].aaa.dbo.table1

insert into table1
select * from [10.0.0.2].aaa.dbo.table1

insert into table1
select * from [10.0.0.3].aaa.dbo.table1

insert into table1
select * from [10.0.0.4].aaa.dbo.table1

go


请教大家,上面这个存储过程该怎么写,如果IP 1 不在线,后面的都不会执行。
如果1,2,3,4其中任何一个不在线,这个存储过程都创建不了

有没有什么办法,先判断一个IP是不是在线,如果不在线,跳转到下一个IP运行。
已邀请:
0

- 取是能力,舍是境界 2015-10-07 回答

以下方法可以检测链接服务器状态,参照此方法修改下你的存储过程。
declare @srvr nvarchar(128), @retval int;
set @srvr = 'my_linked_srvr';
begin try
exec @retval = sys.sp_testlinkedserver @srvr;
end try
begin catch
set @retval = sign(@@error);
end catch;
print @retval
if @retval <> 0
raiserror('Unable to connect to server. This operation will be tried later!', 16, 2 );

要回复问题请先登录注册