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 :

Table Vide : Cannot truncate table because it is being referenced by a FOREIGN KEY constraint.


Sujet :

MS SQL Server

  1. #1
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut Table Vide : Cannot truncate table because it is being referenced by a FOREIGN KEY constraint.
    Bonjour

    Dans ma base de donnée toutes mes tables sont vides !
    J'ai fais un delete de chacune

    Pourtant si j'essaye de faire un truncate de certaines tables j'ai le message

    Cannot truncate table 'questions' because it is being referenced by a FOREIGN KEY constraint.
    Dans le cas présent le but du truncate est de reseter le compteur d'identité

    Je pourais bien sur faire un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DBCC CHECKIDENT (Answers, reseed, 0)
    Mais j'aimerais aussi comprendre pourquoi le Truncate ne fonctionne pas

    Merci de votre aide
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur Full-stack
    Inscrit en
    Novembre 2010
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Full-stack

    Informations forums :
    Inscription : Novembre 2010
    Messages : 372
    Points : 489
    Points
    489
    Par défaut
    Bonjour,

    "TRUNCATE" ne fonctionne pas parce que tu n'as pas supprimé les références de clés étrangères.

    Merci.
    La recherche de la connaissance est une Lumière qui apaise le Cœur.
    Si une réponse vous a été utile , n'oubliez pas de voter en cliquant sur:.

  3. #3
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Merci pour ta réponse
    J'aurais pu comprendre si les tables contenaient des données
    Mais je viens de faire un DELETE de TOUTES les tables

    Donc je ne comprends pas ou le serveur va chercher des références qui n'existent plus !
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur Full-stack
    Inscrit en
    Novembre 2010
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Full-stack

    Informations forums :
    Inscription : Novembre 2010
    Messages : 372
    Points : 489
    Points
    489
    Par défaut
    Pourrais tu essayer quand même? Au cas, où tu ne déciderais pas encore, tu pourrais jeter un coup d’œil sur cette discussion --> http://stackoverflow.com/questions/2...key-constraint. ça t'aidera.

    Merci d'avance.
    La recherche de la connaissance est une Lumière qui apaise le Cœur.
    Si une réponse vous a été utile , n'oubliez pas de voter en cliquant sur:.

  5. #5
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    De fait !

    Tu a raison il n'y a pas d'autres solutions, j'avais donc pris la bonne approche

    1- Delete
    2- Reseed Identity

    Merci pour tes conseils
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 772
    Points : 52 737
    Points
    52 737
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par olibara Voir le message
    Merci pour ta réponse
    J'aurais pu comprendre si les tables contenaient des données
    Mais je viens de faire un DELETE de TOUTES les tables

    Donc je ne comprends pas ou le serveur va chercher des références qui n'existent plus !
    Tes références existent toujours car elles sont dynamiques.... Pendant que tu delete quelqu'un pourrait faire un INSERT !!
    Il ne peut le savoir qu'en allant vérifier les valeurs.... C'est ce qui fait justement la force du modèle relationnel, là ou d'autres systèmes avaient mis des pointeurs !!!!

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

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

Discussions similaires

  1. Réponses: 13
    Dernier message: 27/08/2015, 17h46
  2. Réponses: 5
    Dernier message: 28/08/2014, 15h49
  3. Réponses: 3
    Dernier message: 28/11/2011, 17h26
  4. Réponses: 6
    Dernier message: 21/02/2008, 12h29
  5. Réponses: 0
    Dernier message: 12/12/2007, 21h10

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