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

Sybase Discussion :

ASE 12.5.3 : impossible de supprimer une table


Sujet :

Sybase

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 26
    Points : 18
    Points
    18
    Par défaut ASE 12.5.3 : impossible de supprimer une table
    Bonjour,

    J'ai une question à priori très simpliste

    Je souhaite supprimer une table nommée TOTO (appartenant à la base base_A) mais lors de la suppression un message me dit :
    "Impossible de supprimer la table TOTO car des contraintes d'intégrité référentielles y sont encore définies"

    Or je n'en vois aucune ! il n'y a qu'une primary key sur ma table.

    Plus bizarre, quand je fais un sp_helpconstraint TOTO, j'ai le résultat suivant indiquant 2 lignes :
    name defintion created
    ------ --------- ------------
    * BASE_2.. FOREIGN KEY (*) REFERENCES TOTO(ID_CPD_TOTO)

    et

    PK_TOTO PRIMARY KEY INDEX (ID_CPT_TOTO) : NON CLUSTERED, FOREIGN KEY

    Qu'est-ce que c'est que ce "*" dans la colonne name a la premiere ligne ?

    Help !!
    merci d'avance

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Points : 1 828
    Points
    1 828
    Par défaut
    Un rapide check du code de la procédure sp_helpconstraint montre ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ...
    SELECT @foreign_keys = isnull(convert(varchar(30), col_name
     (@tableid, @fokey1 , @frgndbid)), "*") + ", "
            + isnull(convert(varchar(30), col_name(@tableid, @fokey2 , @frgndbid)), "*") + ", "
            + isnull(convert(varchar(30), col_name(@tableid, @fokey3 , @frgndbid)), "*") + ", "
            + isnull(convert(varchar(30), col_name
    ...
    Si j'interprète cela correctement cela voudrait dire que la référence (tableId, columnId et dbid) n'est plus valable. A priori il y a encore une ligne dans sysconstraints et/ou sysreferences dans BASE_2 qui fait référence à ta table TOTO. Est-ce que les tables systèmes ont été éditées à la main sur ce serveur ?

    En attendant, essaye:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select * from BASE_2..sysreferences where reftabid = object_id('TOTO')
    A partir de là tu peux essayer de voir si tu retrouve la source de la référence (tableid). Si cette ligne est rééllement orpheline (pas de table correspondante à la tableid) alors tu peux probablement l'effacer pour ensuite pouvoir dropper la table TOTO. Comme d'habitude lorsque l'on édite les tables systèmes il faut observer la plus grande prudence (transactions, bien vérifier que seule la ligne qu'on a voulu effacer/éditer ait été affectée, etc.)

    Michael
    Michael Peppler
    Membre de TeamSybase - www.teamsybase.com

    "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 26
    Points : 18
    Points
    18
    Par défaut
    Merci beaucoup je vais essayer ça

    pour répondre à ta question, la table système n'a pas été éditée dans la base BASE_2 ... bizarre ça .... et je ne vois aucune raison qu'il y ait un lien entre BASE_1 et BASE_2 .. peut-l'uné a été rechargée à partir d'un DUMP de l'autre bizarre .... merci encore

Discussions similaires

  1. [AC-2010] Impossible de supprimer une table, un formulaire ou une requête
    Par leonnikita dans le forum Access
    Réponses: 4
    Dernier message: 25/03/2014, 18h39
  2. [AC-2007] Impossible de supprimer une table
    Par dumas.blr dans le forum VBA Access
    Réponses: 21
    Dernier message: 04/02/2011, 16h01
  3. Réponses: 2
    Dernier message: 16/01/2008, 19h13
  4. [ASE] Impossible de supprimer une table de type tempdb..matable
    Par Malau dans le forum Adaptive Server Enterprise
    Réponses: 4
    Dernier message: 21/11/2007, 11h13
  5. Impossible de supprimer une table temporaire
    Par benjisan dans le forum Access
    Réponses: 2
    Dernier message: 27/06/2007, 09h43

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