删除和添加链接服务器

Asy*_*ous 5 sql t-sql sql-server-2008

可能重复:
SQL Server:是否存在链接服务器的"IF EXISTS"测试?

我正在尝试创建一个代码块,用于创建链接服务器/删除链接服务器.我发布了关于添加和删除函数的类似问题,解决方案是删除函数并重新创建它.

所以我想对LinkServer采取相同的方法.DROP它并在每次运行此代码时重新创建它.

但是,我无法在删除后重新创建链接服务器,并收到错误消息:服务器已存在.

这是我的代码:

IF OBJECT_ID('AccessDataSource') IS NOT NULL
EXEC master.sys.sp_dropserver 'AccessDataSource','droplogins'

GO

EXEC sp_addlinkedserver
@server     = 'AccessDataSource'
,@srvproduct = 'OLE DB Provider for ACE ' 
,@provider   = 'Microsoft.ACE.OLEDB.12.0'
,@datasrc    = 'N:\Database_Tools\AccessDB\delphi.accdb'
GO
Run Code Online (Sandbox Code Playgroud)

小智 16

这实际上是至少SQL Server的副本:链接服务器是否有"IF EXISTS"测试?

但你想要的是:

IF EXISTS(SELECT * FROM sys.servers WHERE name = N'AccessDataSource')
EXEC master.sys.sp_dropserver 'AccessDataSource','droplogins'  
GO
Run Code Online (Sandbox Code Playgroud)

正如在另一个问题中也回答的那样 - 您可能需要查看:http://msdn.microsoft.com/en-us/library/ms178530.aspx