Maison >base de données >tutoriel mysql >Comment puis-je récupérer des valeurs d'identité après une instruction INSERT à l'aide de la clause OUTPUT de SQL Server ?
Récupération des valeurs d'identité nouvellement générées avec la clause OUTPUT de SQL Server
Lors de l'insertion de données dans une base de données SQL Server, vous avez souvent besoin de la valeur d'identité nouvellement générée pour la ligne insérée. La clause OUTPUT
fournit un moyen propre et efficace d'y parvenir. Cet article explore deux méthodes principales.
Méthode 1 : Sortie vers la console ou utilisation de ExecuteScalar()
Pour un débogage rapide ou la récupération de la valeur d'identité dans un contexte non-T-SQL (comme une application .NET), la clause OUTPUT
peut envoyer la valeur directement à la console SSMS ou être capturée à l'aide de ExecuteScalar()
.
<code class="language-sql">INSERT INTO MyTable(Name, Address, PhoneNo) OUTPUT INSERTED.ID VALUES ('Yatrix', '1234 Address Stuff', '1112223333')</code>
Dans .NET :
<code class="language-csharp">int newId = command.ExecuteScalar();</code>
Méthode 2 : Sortie vers une variable de table ou une table temporaire
Pour les scénarios nécessitant la valeur d'identité dans une procédure stockée ou un lot T-SQL, une variable de table ou une table temporaire offre une solution puissante. La clause OUTPUT
dirige la valeur d'identité insérée dans cette table, permettant un traitement ultérieur dans l'environnement T-SQL.
<code class="language-sql">DECLARE @OutputTbl TABLE (ID INT) INSERT INTO MyTable(Name, Address, PhoneNo) OUTPUT INSERTED.ID INTO @OutputTbl(ID) VALUES ('Yatrix', '1234 Address Stuff', '1112223333') -- Now you can use the ID from @OutputTbl SELECT ID FROM @OutputTbl;</code>
Ces techniques permettent aux développeurs de récupérer de manière transparente les valeurs d'identité générées à partir des INSERT
instructions, facilitant ainsi le débogage, le renvoi des valeurs aux applications et permettant des flux de travail T-SQL complexes.
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!