Comment se connecter à une autre instance de Sql Server avec une version différente dans Sql Server 2008 Procédure stockée

J'ai stocké la procédure dans une database dans une instance de Sql Server 2008 .

J'ai une procédure stockée à l'intérieur de laquelle je veux me connecter à une Sql Server 2005 données Sql Server 2005 avec UserName et Password et Insérer des données dans une table.

Comment puis-je faire ceci?

Merci

Créez un server lié. Vous ne pouvez pas le faire dans le context d'une procédure stockée. Vous pouvez toutefois configurer les informations d'identification de connection dans une procédure stockée. Dans l'exemple ci-dessous, il suppose que le server lié a été nommé OTHERSERVER. Cela vous permettrait de passer un nom d'user et un mot de passe pour la nouvelle connection et d'appeler une procédure stockée.

 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', @locallogin=@locallogin,@rmtuser=@userName, @rmtpassword=@password EXEC OTHERSERVER.DestinationDatabase.dbo.StoredProcInOtherDatabase @OtherParameter = @i EXEC master.dbo.sp_droplinkedsrvlogin @rmtsrvname=N'OTHERSERVER',@locallogin=@locallogin end 

Pour appeler une procédure stockée, vous devez également activer RPC pour le server lié

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

Créer un server lié Dans SSMS, allez dans "Server Objects" -> "Linked Servers" et créez un nouveau server lié pour l'instance Sql2005 fournissant le context de security que vous voulez utiliser. Ensuite, dans le SP, reportez-vous à la table Sql2005 en tant que: [nom du server lié]. [Nom de la database]. [Nom du schéma]. [Nom de la table]