Update dans SqlServer 2008

Résolu
cs_titi66 Messages postés 120 Date d'inscription mercredi 14 janvier 2004 Statut Membre Dernière intervention 3 mars 2009 - 12 févr. 2009 à 15:16
cs_titi66 Messages postés 120 Date d'inscription mercredi 14 janvier 2004 Statut Membre Dernière intervention 3 mars 2009 - 17 févr. 2009 à 15:00
bonjour

dans un procédure stockée, je passe  des parametres, je fais des calculs
et je veux mettre à jour ma table 
Si mon enregistrement existe je fait un Update sinon un Insert

Je ne sais pas comment tester si mon enregistement existe

j'ai pensé faire un select , puis faire un if ....
je passe en paramètre mon critère de recherche.
select count(*) from table1 where champ1 = @recherche1
Mais comment recupérer la valeur  de ce select ?

ou y a t'il une autre méthode?

merci

7 réponses

cs_titi66 Messages postés 120 Date d'inscription mercredi 14 janvier 2004 Statut Membre Dernière intervention 3 mars 2009
16 févr. 2009 à 16:51
j'ai trouve une solution :

CREATE






TABLE



#tabletemp

(



NbExiste



int
)

-- Insertion du résultat de la requête




INSERT






INTO



#tabletemp

EXEC



(
select count(*) as NB  from table1 where champ1 = [mailto:'+@recherche1 '+@recherche1]);



--Puis on récupère le résultat




DECLARE






@val



intSELECT





@val



=



NbExiste



FROM



#tabletemp

DROP






TABLE



#tabletemp

if @nbval = 0 ....
3
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
16 févr. 2009 à 17:45
Ou la
Pas besoin de sortir une table temporaire

C'est sortir un bazooka pour tuer une mouche

declare @nb as int
select @nb = count(*) from dbo.Categories
print 'nb enregistrements'
print @nb
3
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
13 févr. 2009 à 15:21
Salut,

select count(*) as NB  from table1 where champ1 = @recherche1

ou
 
nb = cmd.executescalar()
0
cs_titi66 Messages postés 120 Date d'inscription mercredi 14 janvier 2004 Statut Membre Dernière intervention 3 mars 2009
13 févr. 2009 à 16:20
Merci

mais comment tester nb apres la requete select ?
quand  je veux générer ma procédure stockée il me met une erreur ...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
13 févr. 2009 à 16:29
laquelle
0
cs_titi66 Messages postés 120 Date d'inscription mercredi 14 janvier 2004 Statut Membre Dernière intervention 3 mars 2009
16 févr. 2009 à 10:03
bonjour

je fais

if nb = 0 
   insert ....
else
   update

et la variable  nb n'est pas trouvée ...
0
cs_titi66 Messages postés 120 Date d'inscription mercredi 14 janvier 2004 Statut Membre Dernière intervention 3 mars 2009
17 févr. 2009 à 15:00
effectivement  ça marche

merci
0
Rejoignez-nous