@@IDENTITY
renvoie le ID
de la dernière ligne inséré , je souhaite récupérer l'ID de la dernière ligne updated .
Voici ma requête:
UPDATE [Table]
SET Active = 1,
Subscribed = 1,
RenewDate = GETDATE(),
EndDate = DATEADD(mm,1,getdate()),
WHERE SC = @SC
AND Service = @Ser
Comment puis-je obtenir l'ID de cette ligne mise à jour?
La colonne s'appelle TableID
et je ne l'utilise pas dans la requête.
Vous ne pouvez pas récupérer un ID car il n'y a pas d'identifiant inséré .....
Mais tu peux:
interrogez simplement la table en utilisant les mêmes critères que dans votre UPDATE
:
SELECT TableID
FROM dbo.Table
WHERE SC = @SC AND Service = @Ser -- just use the same criteria
utilisez la clause OUTPUT
sur UPDATE
pour obtenir cette information:
UPDATE [Table]
SET Active = 1,
Subscribed = 1,
RenewDate = GETDATE(),
EndDate = DATEADD(mm,1,getdate())
OUTPUT Inserted.TableId -- output the TableID from the table
WHERE SC = @SC AND Service = @Ser
En savoir plus sur la clause OUTPUT
sur Technet - elle peut également être utilisée sur INSERT
et DELETE
vous pouvez essayer d'utiliser ceci:
OUTPUT INSERTED.TableID
dans votre code cela ressemblerait à ceci:
UPDATE [Table]
SET Active = 1,
Subscribed = 1,
RenewDate = GETDATE(),
EndDate = DATEADD(mm,1,getdate()),
OUTPUT INSERTED.TableID
WHERE SC = @SC
AND Service = @Ser
J'espère que cela t'aides.
Je suppose que vous avez besoin de celui-ci,
UPDATE [Table]
SET Active = 1,
Subscribed = 1,
RenewDate = GETDATE(),
EndDate = DATEADD(mm,1,getdate())
OUTPUT INSERTED.TABLE_PrimaryKeyID
WHERE SC = @SC
AND Service = @Ser
Source principale: ici
Essayez d'utiliser select @@ identity donne la dernière identité mise à jour pour la session particulière (ou) sélectionnez scope_identity donne la dernière identité mise à jour pour la portée particulière (ou) sélectionnez ident_curr ('nom_table') donne la dernière identité mise à jour indépendamment de la session ou de la cette table particulière.