我在Sql Server 2008
的實例中將數據庫存儲在數據庫中。如何使用Sql Server 2008中的不同版本連接到Sql Server的另一個實例存儲過程
我有它裏面我想與UserName
和Password
連接到數據庫Sql Server 2005
並插入一些數據表中的存儲過程。
我該怎麼做?
謝謝
我在Sql Server 2008
的實例中將數據庫存儲在數據庫中。如何使用Sql Server 2008中的不同版本連接到Sql Server的另一個實例存儲過程
我有它裏面我想與UserName
和Password
連接到數據庫Sql Server 2005
並插入一些數據表中的存儲過程。
我該怎麼做?
謝謝
創建一個鏈接服務器。您不能在存儲過程的上下文中執行此操作。但是,您可以在存儲過程中設置登錄憑據。在下面的例子中,假定鏈接的服務器被命名爲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'
創建鏈接的服務器。在SSMS中,轉到「服務器對象」 - >「鏈接服務器」併爲Sql2005實例創建新鏈接服務器,以提供您要使用的安全上下文。然後在SP中參考Sql2005表格:[linked server name]。[database name]。[schema name]。[table name]