2011-11-22 2 views

답변

3

연결된 서버를 만듭니다. 저장 프로 시저의 컨텍스트에서는이 작업을 수행 할 수 없습니다. 그러나 저장 프로 시저에서 로그인 자격 증명을 설정할 수 있습니다. 아래 예제에서는 연결된 서버의 이름이 OTHERSERVER라고 가정합니다. 이렇게하면 새 연결에 대한 사용자 이름과 암호를 전달하고 저장 프로 시저를 호출 할 수 있습니다.

create procedure NewTestProc (
    @I int, 
    @userName sysname, 
    @password sysname 
) 
as 
begin 
    declare @locallogin sysname 
    set @locallogin = SUSER_NAME() 

    EXEC master.dbo.sp_addlinkedsrvlogin 
     @rmtsrvname=N'OTHERSERVER', @useself=N'False', 
     @[email protected],@[email protected], 
     @[email protected] 
    EXEC OTHERSERVER.DestinationDatabase.dbo.StoredProcInOtherDatabase 
     @OtherParameter = @i 
    EXEC master.dbo.sp_droplinkedsrvlogin 
     @rmtsrvname=N'OTHERSERVER',@[email protected] 
end 

저장 프로 시저를 호출하려면 당신은 또한 연결된 서버

EXEC master.dbo.sp_serveroption @server=N'OTHERSERVER', 
    @optname=N'rpc', @optvalue=N'true' 
을 위해 RPC를 활성화해야
1

링크 된 서버를 만듭니다. SSMS에서 "서버 개체"-> "연결된 서버"로 이동하여 사용할 보안 컨텍스트를 제공하는 Sql2005 인스턴스에 대한 새 연결된 서버를 만듭니다. 그런 다음 SP에서 Sql2005 테이블을 다음과 같이 참조하십시오. [연결된 서버 이름]. [데이터베이스 이름]. [스키마 이름]. [테이블 이름]

관련 문제