删除和添加链接服务器

时间:2012-01-16 23:25:38

标签: sql sql-server-2008 tsql

  

可能重复:
  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

1 个答案:

答案 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