Recuperer un champs après un insert et barrer la BD

Recuperer un champs après un insert et barrer la BD - SQL/NoSQL - Programmation

Marsh Posté le 18-03-2011 à 15:55:59    

Je suis pas un pro en SQL server. Je fait de la programmation avec visual studio 2010 et j'ai 2 questions. La première est-t-il possible de récupérer un champs immédiatement après une requete INSERT?
 
J'ai un champ qui s'incremente automatiquement et j'ai besoin de sa valeur immédiatement après l'INSERT. Pour le moment, ce que je fait, je fait l'INSERT et ensuite je refait une autre requete pour aller chercher le champs que j'ai besoin. Je veut savoir si c'est possible de recuperer ce que je veut en une seul requete.
 
J'utilise un SqlConnection  si sa peut aider
 
 
 
Ma deuxième question est de comment barrer la base de donnée pendant que je fait des transaction dedans. Quand je rajoute par exemple un nouveau client, je vérifie s'il existe déjà. Si c'est pas le cas, je l'ajoute. Mais le problème est que si 2 personnes ajoute le meme clients en meme temps, je vais le retrouver 2 fois. C'Est quoi les possibilité?    Merci beaucoup


---------------
Perso FFXI : Buldom Galka MNK75/WAR75/NIN75/SMN75/DRG75/SAM75/DRK75/THF75
Reply

Marsh Posté le 18-03-2011 à 15:55:59   

Reply

Marsh Posté le 21-03-2011 à 10:08:10    

Pour recuperer la valeur apres un insert tu peux utiliser la clause OUTPUT comme ca:

Code :
  1. INSERT MaTable (Champ1, Champ2, Champ3)
  2.     Output inserted.id
  3.     VALUES (GETDATE(), 5, 1)


 
Pour ta deuxieme question, tu peux utiliser une transaction (http://msdn.microsoft.com/en-us/library/ms175127.aspx).
Essaye de garder ta transaction la plus courte possible et de ne pas en abuser.

Reply

Marsh Posté le 28-03-2011 à 22:38:15    

Merci beaucoup


---------------
Perso FFXI : Buldom Galka MNK75/WAR75/NIN75/SMN75/DRG75/SAM75/DRK75/THF75
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed