可能重复:
SQL Server: Is there an “IF EXISTS” test for a linked server?
我正在尝试创建一个代码块,用于创建链接服务器/删除链接服务器。 我发布了关于添加和删除函数的类似问题,解决方案是删除函数并重新创建它。
所以我想对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
答案 0 :(得分:16)
这实际上是至少SQL Server: Is there an "IF EXISTS" test for a linked server?
的副本但你想要的是:
IF EXISTS(SELECT * FROM sys.servers WHERE name = N'AccessDataSource')
EXEC master.sys.sp_dropserver 'AccessDataSource','droplogins'
GO
正如另一个问题所回答的那样 - 你可能想看看:http://msdn.microsoft.com/en-us/library/ms178530.aspx