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 :

[SQL_SERVER_2K] mon truncate ne fonctionne pas, pourquoi ?


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 172
    Par défaut [SQL_SERVER_2K] mon truncate ne fonctionne pas, pourquoi ?
    Bonjour

    Je dois vider certaines tables de ma base de données.
    Mais cela ne fonctionne pas à cause des contraintes d'intégrités.

    Avant de vouloir supprimer le contenu de la table j ai desactivé les contraintes avec ce script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    nocheck :
    select 'ALTER TABLE dbo.' + P.name + ' NOCHECK constraint ' + K.name + ';' 
    from ANAELRHDTA.dbo.sysobjects as K , dbo.sysobjects As	P 
    where K.xtype = 'F' and K.parent_obj = P.id
    Je récupere les resultats et j'execute les requetes.

    Ensuite je fais le truncate de ma table et les donnees ne se suppriment pas
    Ensuite je remet les contraintes d'integrités avec ce script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    check :
    select 'ALTER TABLE dbo.' + P.name + ' CHECK constraint ' + K.name + ';' 
    from ANAELRHDTA.dbo.sysobjects as K , dbo.sysobjects As	P 
    where K.xtype = 'F' and K.parent_obj = P.id
    J ai l impression que ces scripts n enlevent que les contraintes primaires et pas les contraintes etrangeres.

    Quelqu un aurait une idee ?

    Cordialement mEhO

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 002
    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 : 22 002
    Billets dans le blog
    6
    Par défaut
    CHECK ou NOCHECK ne désavtive pas les contraintes ! Cela désactive le contrôle des contraintes pour les valeurs passées.

    Le seul moyen de "désactiver" une contrainte est de la supprimer.

    D'ou l'intérêt de scripter le DDL de sa base de données et d'isoler de ce script les création des contraintes d'IR.

    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/ * * * * *

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 172
    Par défaut
    Quand j execute l un des scripts ci dessus, il m affiche des requetes permettant de desactiver/activer les contraintes que je dois executer par la suite.

    Comment faire pour supprimer/créer des contraintes ?

  4. #4
    Membre expérimenté
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2007
    Messages
    193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 193
    Par défaut
    alter table matable drop constraint
    alter table matable add constraint

Discussions similaires

  1. Mon code ne fonctionne pas mais pourquoi ?
    Par veriecherie dans le forum ASP
    Réponses: 3
    Dernier message: 01/08/2008, 12h19
  2. pourquoi mon code ne fonctionne pas
    Par jmlb35 dans le forum VBA Access
    Réponses: 2
    Dernier message: 30/06/2008, 19h02
  3. Pourquoi mon frame ne fonctionne pas sur Safari 3.0.4?
    Par joecool2005 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 05/02/2008, 17h36
  4. Réponses: 1
    Dernier message: 30/08/2006, 19h00
  5. [VB.Net/DataReader] Pourquoi mon ExecuteReader ne fonctionne pas ?
    Par emeraudes dans le forum Accès aux données
    Réponses: 8
    Dernier message: 21/08/2006, 13h38

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