2012-01-16 3 views
3

가능한 중복 : 나는/링크 서버 만들기 링크 서버를 삭제하는 코드 블록을 만들기 위해 노력하고
SQL Server: Is there an “IF EXISTS” test for a linked server?떨어 뜨리 추가 링크 서버

. 함수 추가 및 삭제에 대한 비슷한 질문을 올렸습니다. 솔루션은 함수를 삭제하고 다시 작성하는 것이 었습니다.

그래서 LinkServer와 동일한 접근 방식을 원합니다. 코드를 삭제하고이 코드를 실행할 때마다 다시 만듭니다.

그러나 삭제 후 링크 서버를 다시 만들 수없고 다음과 같은 오류 메시지가 나타납니다. 서버가 이미 있습니다. 여기

내 코드입니다 : 당신이 원하는 것은

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 

답변

14

이 실제로 적어도 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

+0

감사합니다. - 작동합니다. 게시 한 링크를 읽습니다. – Asynchronous