IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

Insert avec une clause where !?


Sujet :

MS SQL Server

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 390
    Points : 222
    Points
    222
    Par défaut Insert avec une clause where !?
    Bonjour,

    Est-ce qu'il est possible de faire un insert avec une clause where, genre:

    insert into table (products_id , price) values (25,40)

    si aucune ligne = à products_id n'existe .

    Je ne vois pas comment faire.

    Merci d'avance pour votre aide.

    A+

  2. #2
    Membre éprouvé Avatar de cubitus91
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2004
    Messages
    726
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 726
    Points : 933
    Points
    933
    Par défaut
    tu peux détailler un peu ce que tu veux vérifier qui n existe pas

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 390
    Points : 222
    Points
    222
    Par défaut
    Bon c'est faux mais il me faut un truc comment çà:

    insert into table (products_id , price) values (25,40) where products_id <>25

    en gros que l'insert ne se fasse pas si une ligne avec products_id=25 existe déjà.

    Merci.

    A+

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 434
    Points : 502
    Points
    502
    Par défaut
    1- il faut mettre le nom de la table dans laquelle tu veux faire l'insert
    2- de preférence un select plutot que values

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if not exists (select 1 from TheTable where products_id =25)
    INSERT INTO TheTable(products_id , price)
    SELECT (25, 40)

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 390
    Points : 222
    Points
    222
    Par défaut
    Il veut pas !
    J'ai une erreur syntaxe incorrecte vers ',' sur SELECT (25, 40)

    Question bête, on peut faire un SELECT (25, 40) ? Car ce n'est pas des noms de colonnes !

    A+

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 434
    Points : 502
    Points
    502
    Par défaut
    autant pour moi, erreur de copier coller

    c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     select '25', '40' qu'il faut faire

  7. #7
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    INSERT INTO dbo.TheTable(products_id , price)
    SELECT 25, 40
    WHERE NOT EXISTS (SELECT 1 FROM dbo.TheTable WHERE products_id = 25)
    GO
    svp, poste le code de création de ta table quand tu poste une question, ça évite de perdre du temps à le faire soi-même pour tester, et à faire des TheTable(col1, col2) ...

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 390
    Points : 222
    Points
    222
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    INSERT INTO dbo.TheTable(products_id , price)
    SELECT 25, 40
    WHERE NOT EXISTS (SELECT 1 FROM dbo.TheTable WHERE products_id = 25)
    GO
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if not exists (select 1 from TheTable where products_id =25)
    INSERT INTO TheTable(products_id , price)
    SELECT (25, 40)
    fonctionnent !

    Encore merci à vous deux pour votre aide !


    svp, poste le code de création de ta table
    C'est bien noté pour la prochaine fois.

    A+

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 434
    Points : 502
    Points
    502
    Par défaut

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Toutes versions] INSERT INTO avec une Clause Where
    Par casavba dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 02/02/2010, 21h16
  2. Mettre à jour un champ Boolean avec une clause "WHERE"
    Par niano dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 02/10/2007, 11h29
  3. DELETE avec une clause where
    Par liberty74 dans le forum Requêtes
    Réponses: 3
    Dernier message: 27/08/2007, 11h56
  4. Jointure avec une clause where
    Par pepi22 dans le forum Langage SQL
    Réponses: 15
    Dernier message: 19/08/2007, 10h24
  5. [super requete] Dumper un model avec une clause where
    Par elievar dans le forum Langage SQL
    Réponses: 3
    Dernier message: 16/03/2005, 17h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo