2010-07-19 8 views
0

J'ai une table de contact us contenant le nom emailid phoneno message replymessage comme champs, par défaut le champ de message répondu est nul après avoir répondu à un message particulier je suis mise à jour ce champ mais en même temps je voulez récupérer les autres valeurs aussi comme nom et emailid en utilisant des instructions selectSélectionnez et mettre à jour dans une seule requête

+0

Je n'ai pas compris ce que vous voulez dire. Voulez-vous mettre à jour un ou plusieurs enregistrements et * puis * afficher d'autres enregistrements? – frabiacca

+0

ya tu as raison de toute façon j'ai eu la réponse et merci pour ta réponse – Mac

Répondre

1

Voulez-vous dire que vous mettez à jour plusieurs lignes ou une seule?

Si vous mettez à jour plusieurs lignes, vous pouvez sélectionner les ID de ligne affectés dans une table temporaire, effectuer la mise à jour, puis renvoyer une jointure des ID de la table tmp sur la table mise à jour.

Si vous mettez à jour une seule ligne, effectuez simplement une sélection sur cette ligne après la mise à jour.

Il est mauvais pour la maintenabilité d'essayer deux opérations en même temps, à moins que la logique de la situation ne prouve, plus tard, qu'elle est nécessaire.

Vous pouvez toujours avoir un champ DATETIME LastUpdated simple sur la table. Ensuite, vous avez juste besoin d'une variable que vous définissez à getdate() et utilisez pendant la mise à jour. Après la mise à jour, renvoyez simplement chaque ligne où LastUpdated correspond à la variable datetime.

Par exemple:

declare @opTime datetime 
set @opTime = getdate() 

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

select * from ... where LastUpdated = @opTime 
Questions connexes