Maison > base de données > tutoriel mysql > Comment récupérer le dernier ID inséré après une insertion de base de données dans SQL Server ?

Comment récupérer le dernier ID inséré après une insertion de base de données dans SQL Server ?

DDD
Libérer: 2025-01-21 23:12:13
original
340 Les gens l'ont consulté

How to Retrieve the Last Inserted ID After a Database Insertion in SQL Server?

Obtenez le dernier identifiant après l'insertion dans la base de données SQL Server

Après avoir inséré des données dans la base de données, il est souvent nécessaire d'obtenir l'ID du dernier enregistrement inséré. Regardons un scénario : après avoir inséré une ligne dans la table aspnet_GameProfiles, nous devons obtenir le GamesProfileId automatiquement incrémenté.

L'extrait de code suivant exécute une instruction INSERT mais ne dispose d'aucun mécanisme pour capturer le GamesProfileId nouvellement généré. Pour y parvenir, nous explorerons différentes méthodes en fonction de la version de SQL Server utilisée.

SQL Server 2005 et supérieur (pas de déclencheur d'insertion)

Pour SQL Server 2005 et supérieur, s'il n'y a pas de déclencheur d'insertion défini sur la table aspnet_GameProfiles, vous pouvez modifier l'instruction d'insertion pour inclure une clause OUTPUT :

<code class="language-sql">INSERT INTO aspnet_GameProfiles(UserId,GameId)
OUTPUT INSERTED.ID
VALUES(@UserId, @GameId)</code>
Copier après la connexion

Cela renverra automatiquement l'ID inséré comme résultat de la requête. Vous pouvez le récupérer grâce au code suivant :

<code class="language-csharp">SqlCommand myCommand = new SqlCommand(insertSql, myConnection);
...
SqlDataReader reader = myCommand.ExecuteReader();
reader.Read();
Int32 newId = reader.GetInt32(0);</code>
Copier après la connexion

SQL Server 2000 ou insérer un déclencheur

Si vous utilisez SQL Server 2000 ou si vous avez des déclencheurs d'insertion sur la table, vous pouvez utiliser la fonction SCOPE_IDENTITY() :

<code class="language-sql">INSERT INTO aspnet_GameProfiles(UserId,GameId) 
VALUES(@UserId, @GameId);
SELECT SCOPE_IDENTITY()</code>
Copier après la connexion

Après avoir exécuté la requête, vous pouvez récupérer le dernier identifiant inséré à l'aide du code suivant :

<code class="language-csharp">SqlCommand myCommand = new SqlCommand(insertSql, myConnection);
...
Int32 newId = (Int32) myCommand.ExecuteScalar();</code>
Copier après la connexion

En utilisant ces techniques, vous pouvez obtenir efficacement le dernier GamesProfileId inséré, pouvant ainsi l'utiliser dans votre application pour des insertions ultérieures ou d'autres opérations.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal