Posted by OFPPT
No comments | 17:19



Sélectionner et mettre à jour en une seule requête




Dites-vous que vous mettez à jour plusieurs lignes ou un seul ?
Si vous mettez à jour plusieurs lignes, vous pouvez sélectionner l'ID de ligne affectée dans une table temporaire, effectuer la mise à jour, puis renvoyer une jointure de la tmp ID de la table sur la table mise à jour.
Si vous mettez à jour une seule ligne, simplement exécuter un select sur la même rangée, après la mise à jour.
C'est mauvais pour la maintenabilité d'essayer deux opérations en même temps, à moins que la logique de la situation rend clair, plus tard, qu'il est requis.
Vous pouvez toujours avoir un champ DATETIME LastUpdated simple sur la table. Ensuite vous avez juste besoin d'une variable qui vous définissez GETDATE(), utilisez pendant la mise à jour. Après la mise à jour il suffit de retourner tous les rangs qui LastUpdated correspond à la variable datetime.
Par exemple :
declare @opTime datetime
set @opTime = getdate()

update .... (...., LastUpdated) values (....., @opTime)

select * from ... where LastUpdated = @opTime

0 commentaires:

Enregistrer un commentaire