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 :

[SQL2005]truncate table > error with reference


Sujet :

MS SQL Server

  1. #1
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 37
    Par défaut [SQL2005]truncate table > error with reference
    Bonjour à tous,

    Je souhaiterais vider la totalité de mes tables d'une base de données mais ces tables contiennent pour certaines des clés auto-increment ce qui m'oblige à les vider par la commande "truncate table" pour les remettre à 0, seulement voila mes tables contiennent presque toutes des références vers d'autres tables donc il ne veut pas les vider avec "truncate". Qqun sait-il comment il est possible de vider totalement des tables qui contiennent des références ??

    Merci

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 249
    Par défaut solution.
    je n'ai pas de solution directe à ton problème mais dans la situation qui est la tienne, je commencerais par effacer les tables qui n'ont pas de référence externe puis les tables qui font references à ces tables qui n'ont pas de reference et ainsi de suite... deroule la pellote... c'est impossible ?

  3. #3
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 37
    Par défaut
    C'est impossible en effet car il ne veut vraiment pas les vider même si tu respectes l'ordre. J'ai finalement opté pour la solution suivante.
    -"Delete from" de toutes les tables
    -remise à 1 de l'auto-increment de toutes les tables concernées par le biais de sql server management studio
    -back up de l'etat de la base pour pouvoir la restore quand je voudrais la vider

    Merci de ton aide a+

  4. #4
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Bonjour,

    Tu pouvais également scripter la base, et la recréer sur une autre instance (clic droit sur la BD, tâches, générer des scripts et tu te laisses guider )

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 996
    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 996
    Billets dans le blog
    6
    Par défaut
    remise à 1 de l'auto-increment de toutes les tables concernées par le biais de sql server management studio
    Pour cette phase là vous pouvez utiliser la commande Transact SQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DBCC DHECKIDENT ('Matable', RESEED, 1)
    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/ * * * * *

  6. #6
    Membre confirmé
    Inscrit en
    Avril 2002
    Messages
    182
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 182
    Par défaut
    Tu peux faire comme ca :
    1/ desactiver les contraintes de clé etrangeres des tables.
    2/ truncate des tables.
    3/ shrink des fichiers de données et du fichier de logs.

    En suivant ces etapes tu evitera les erreurs liées aux referencements des clés et tu aura un nettoyage quasiment complet de ta base.

  7. #7
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Bonjour,

    Je n'ai jamais compris l'intérêt de "shrinker" un fichier de données, puisque c'est forcer SQL Server à restituer de la mémoire qu'il s'est allouée et dont il se (re)servira très certainement ...

Discussions similaires

  1. [SQL2005] truncate table 40Go
    Par dkmix dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 06/07/2011, 22h39
  2. Table Import Error
    Par anikeh dans le forum Access
    Réponses: 1
    Dernier message: 13/12/2005, 11h36
  3. truncate table
    Par illegalsene dans le forum Oracle
    Réponses: 6
    Dernier message: 27/10/2005, 16h29
  4. LOCK TABLES et TRUNCATE TABLE
    Par killy-kun dans le forum Requêtes
    Réponses: 2
    Dernier message: 29/08/2005, 15h52
  5. commande SQL truncate table xxx
    Par Yogy dans le forum SQL
    Réponses: 1
    Dernier message: 07/10/2004, 14h57

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