2011-11-22 69 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 

調用存儲過程,你也必須啓用RPC鏈接服務器

EXEC master.dbo.sp_serveroption @server=N'OTHERSERVER', 
    @optname=N'rpc', @optvalue=N'true' 
1

創建鏈接的服務器。在SSMS中,轉到「服務器對象」 - >「鏈接服務器」併爲Sql2005實例創建新鏈接服務器,以提供您要使用的安全上下文。然後在SP中參考Sql2005表格:[linked server name]。[database name]。[schema name]。[table name]

相關問題