Le meilleur moyen d'obtenir l'identité de la ligne insérée dans le serveur lié?
Je suis l'insertion d'enregistrement dans une instance distante de Sql Server à l'aide du serveur Lié, Maintenant je veux obtenir l'id de l'enregistrement inséré. quelque chose comme scope_identity()
dans le serveur local.
Mon serveur sql server distant est de la version 2000.
J'ai vu ce post mais je ne peux pas ajouter de procédures stockées dans sql server distant
source d'informationauteur Raymond Morphy
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser la télécommande à côté de
sp_executesql
:Sinon, vous pouvez utiliser
OPENQUERY
:Encore une autre variante, dans le cas liés utilisateur a la permission d'appels de procédures sur un serveur lié:
essayer quelque chose comme cela:
l'EXEC sera de retour un ensemble de résultats contenant les
SCOPE_IDENTITY()
valeursi vous avez à faire cela pour SQL Server 2005+, vous pouvez juste ajouter un
OUTPUT INSERTED.IdentityColumn
pour obtenir un ensemble de résultats de la identitie(s). Ajouter unINTO
sur queOUTPUT
et vous pouvez les stocker dans un tableau/table variable sur la machine locale.