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

Langage SQL Discussion :

Drop table avec foreign key


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2004
    Messages : 221
    Points : 70
    Points
    70
    Par défaut Drop table avec foreign key
    Bonjour à tous,
    J'aimerais savoir s'il y a une façon de faire un drop table d'une table qui est "référencée" par un foreign key.

    je crois qu'on peut faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alter table nom_table disable constraint ...
    mais j'aimerais avoir une méthode qui puisse le faire sans que j'aie besion de spécifié toutes mes contraintes une par une...

    Merci et bonne journée à tous
    --Samus 535

  2. #2
    Membre éclairé
    Avatar de patriceharel
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2008
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 466
    Points : 884
    Points
    884
    Par défaut
    Bonjour,

    Voilà un petit exemple qui désactive toutes les contraintes de ta base de données (C'est sous SQL server);

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    DECLARE
        @sql VARCHAR(500),
        @tableName VARCHAR(128),
        @foreignKeyName VARCHAR(128)
     
    DECLARE foreignKeyCursor CURSOR
        FOR
          SELECT
            ref.constraint_name AS FK_Name,
            fk.table_name AS FK_Table
          FROM
            INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS ref
            INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS fk ON ref.constraint_name = fk.constraint_name
          ORDER BY
            fk.table_name,
            ref.constraint_name
    BEGIN
     
    OPEN foreignKeyCursor
     
    FETCH NEXT FROM foreignKeyCursor INTO @foreignKeyName, @tableName
    WHILE ( @@FETCH_STATUS = 0 )
        BEGIN
                    SET @sql = 'ALTER TABLE [' + @tableName + '] NOCHECK CONSTRAINT [' + @foreignKeyName + ']'   
            PRINT 'Executing Statement - ' + @sql
                EXECUTE(@sql)
            FETCH NEXT FROM foreignKeyCursor INTO @foreignKeyName, @tableName
        END
     
    CLOSE foreignKeyCursor

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 114
    Points : 128
    Points
    128
    Par défaut Quelle base ?
    Cela dépend de la base que tu utilise.
    Les tables systèmes de la base de données contiennent les définitions de tables, colonne et contraintes ...

    Dis-nous quelle base tu utilise, on te trouvera la solution ...

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2004
    Messages : 221
    Points : 70
    Points
    70
    Par défaut
    La base que j'utilise est SQL Server 2005.

    Merci et bonne journée
    --Samus535

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2004
    Messages : 221
    Points : 70
    Points
    70
    Par défaut
    Bonjour à tous,
    J'ai trouvé ce qui causait mon problème...
    Mon problème n'était pas lors de la suppression mais lors de l'insertion des données dans les tables, car je réactive les contraintes et il y a des erreurs dans les données :S

    J'utilise cette méthode pour désactiver les contraintes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    exec sp_msforeachtable 'alter table ? NOCHECK CONSTRAINT ALL'
    Merci à tous
    --Samus 535

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

Discussions similaires

  1. creation de tables avec foreign key
    Par fasyr dans le forum Débuter
    Réponses: 9
    Dernier message: 25/04/2009, 19h50
  2. Newbie PgSQL->Probleme Creation de table avec FOREIGN KEY
    Par ralkif dans le forum PostgreSQL
    Réponses: 9
    Dernier message: 07/03/2006, 22h59
  3. Création d'une table avec foreign key.
    Par Paulinho dans le forum Débuter
    Réponses: 6
    Dernier message: 01/12/2005, 19h47
  4. [mysql]table avec foreign key
    Par samjung dans le forum Langage SQL
    Réponses: 24
    Dernier message: 24/11/2005, 15h42
  5. Création d'une table avec foreign key
    Par lepierre dans le forum Langage SQL
    Réponses: 5
    Dernier message: 17/09/2004, 15h20

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