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

Administration SQL Server Discussion :

Détecter les lignes ophelines qui empêchent la pose d'une FK


Sujet :

Administration SQL Server

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 260
    Points : 281
    Points
    281
    Par défaut Détecter les lignes ophelines qui empêchent la pose d'une FK
    Bonjour,

    Je pose une contrainte d'intégrité référentielle et certaines données qui ne la respectent pas en empêchent la création.

    Sous Oracle il existe une clause "exception into" qui donne la liste des adresses "rowid" de ces lignes qui empêchent la création de la contrainte.

    Existe-t-il un mécanisme analogue sous sqlserver (2005-2008) ?

    Pozzo

    PS : Je précise que je ne cherche PAS une requête qui fasse le minus entre les id de la table fille et ceux de la table mère. Je cherche quelque chose de plus générique.

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    Il n'y a pas d'option similaire dans SQL Server. Mais pourquoi effectuer une requête pour trouver les lignes orphelines ne vous convient pas ?

    Notez que vous pouvez "forcer" la création de la contrainte en spécifiant de ne pas vérifier les données existantes avec l'option WITH (NOCHECK). Sachant toutefois qu'en faisant ainsi, la contrainte ne sera pas trustée et donc ne sera pas prise en compte par l'optimiseur...

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 260
    Points : 281
    Points
    281
    Par défaut
    Bonjour,

    Merci de votre réponse aieeeuuuuu.

    Je veux bien exécuter une requête de détection des orphelines mais je veux la générer.
    Pour le coup j'ai dû passer la contrainte en NOCHECK et générer la requête à partir du dictionnaire foreign_keys et consors.

    Algo :
    Création de la FK.
    En cas d'échec :
    Création en NOCHECK
    Détection et affichage des lignes en erreur
    Drop de la contrainte

    Un peu fastidieux mais ça marche.
    Je clos le post.
    Merci de votre aide.

    Pozzo

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

Discussions similaires

  1. détecter les lignes parallèles dans une image
    Par clynda dans le forum ImageJ
    Réponses: 4
    Dernier message: 17/06/2010, 01h28
  2. Compter les lignes d'un fichier CSV à partir d'une ligne
    Par miniRoshan dans le forum Général Java
    Réponses: 6
    Dernier message: 03/06/2010, 11h16
  3. [Free Pascal] Détecter les lignes identiques dans deux tableaux de texte
    Par jeanmich dans le forum Free Pascal
    Réponses: 11
    Dernier message: 10/01/2009, 15h43
  4. Réponses: 6
    Dernier message: 22/05/2007, 09h55
  5. Détecter les lignes identiques entre deux matrices
    Par totovich dans le forum MATLAB
    Réponses: 5
    Dernier message: 17/04/2007, 09h42

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