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

D�veloppement SQL Server Discussion :

D�clarer une cl� �trang�re sous SQL server 2005


Sujet :

D�veloppement SQL Server

  1. #1
    Membre averti
    Inscrit en
    Janvier 2011
    Messages
    10
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 10
    Par d�faut D�clarer une cl� �trang�re sous SQL server 2005
    Bonsoir � tous , je veux d�clarer une cl� �tag�re sous SQL server 2005 mais j'ai un souci , en fait cette FK est r�currente dans 3 tables , j'ai r�ussi � cr�er la premi�re table mais dans la seconde j'ai ce message

    Msg 2714, Level 16, State 4, Line 2
    There is already an object named 'Id_communes' in the database.
    Msg 1750, Level 16, State 0, Line 2
    Could not create constraint. See previous errors.


    sachant que j'utilise ce code

    constraint Id_communes foreign key (Id_communes) references communes(Id_communes),

    communes �tant une table que j'ai cr�e et dont la PK est Id_communes , alors en cr�ant ma seconde table dans laquelle Id_communes est une FK , �a passe mais dans la nouvelle table , j'obtiens le message d�erreur,que j'ai cit� plus haut , merci d'avance pour votre aide .

  2. #2
    Membre Expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de donn�es
    Inscrit en
    Novembre 2004
    Messages
    1 795
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : Architecte de base de donn�es
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Par d�faut
    en fait cette FK est r�currente dans 3 tables
    Ceci n'a pas de sens, la FK est diff�rente pour chaque table puisqu'elle est pr�cisemment sur trois tables diff�rentes
    There is already an object named 'Id_communes' in the database.
    C'est simple, une contrainte FOREIGN KEY doit avoir un nom unique sur ta base...

    En g�n�ral on la nomme quelques chose comme: FK_NOMTABLEFILLE_NOMTABLE_MERE
    Ce qui t'assure d'avoir un nom unique sur ta base...


    En clair il te suffit de nommer diff�remment tes trois FK...

  3. #3
    Membre averti
    Inscrit en
    Janvier 2011
    Messages
    10
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 10
    Par d�faut
    Citation Envoy� par mia06 Voir le message
    Bonsoir � tous , je veux d�clarer une cl� �tag�re sous SQL server 2005 mais j'ai un souci , en fait cette FK est r�currente dans 3 tables , j'ai r�ussi � cr�er la premi�re table mais dans la seconde j'ai ce message

    Msg 2714, Level 16, State 4, Line 2
    There is already an object named 'Id_communes' in the database.
    Msg 1750, Level 16, State 0, Line 2
    Could not create constraint. See previous errors.


    sachant que j'utilise ce code

    constraint Id_communes foreign key (Id_communes) references communes(Id_communes),

    communes �tant une table que j'ai cr�e et dont la PK est Id_communes , alors en cr�ant ma seconde table dans laquelle Id_communes est une FK , �a passe mais dans la nouvelle table , j'obtiens le message d�erreur,que j'ai cit� plus haut , merci d'avance pour votre aide .
    Citation Envoy� par iberserk Voir le message
    Ceci n'a pas de sens, la FK est diff�rente pour chaque table puisqu'elle est pr�cisemment sur trois tables diff�rentes


    C'est simple, une contrainte FOREIGN KEY doit avoir un nom unique sur ta base...

    En g�n�ral on la nomme quelques chose comme: FK_NOMTABLEFILLE_NOMTABLE_MERE
    Ce qui t'assure d'avoir un nom unique sur ta base...


    En clair il te suffit de nommer diff�remment tes trois FK...

    merci pour ton aide mais comme je suis une vraie t�che en BDD et que j'ai trouv� 30 fa�on de d�clarer une FK sur le net je me retrouve � errer comme une �me en peine sur les forums et le pire c'est que je parle Anglais ..

  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 : 44
    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,

    En ce qui concerne l'ajout de contraintes � des tables qui existent d�j�, j'ai donn� comment ajouter chacune d'entre-elles ici, ce que l'on trouve facilement avec un moteur de recherche, en Fran�ais

    Msg 2714, Level 16, State 4, Line 2
    There is already an object named 'Id_communes' in the database.
    Msg 1750, Level 16, State 0, Line 2
    Could not create constraint. See previous errors.
    Ceci sugg�re qu'il existe d�j� un objet (contrainte, table, vue, trigger, proc�dure stock�e, fonction) portant d�j� ce nom.
    Les noms des objets doivent �tre unique dans un sch�ma de base de donn�es.
    Pour le savoir, et en supposant que vous �tes sous SQL Server 2005 ou 2008 :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    SELECT		S.name AS nom_schema
    		, O.name AS nom_objet
    		, O.type_desc AS type_objet
    FROM		sys.objects AS O
    INNER JOIN	sys.schemas AS S ON O.schema_id = S.schema_id
    WHERE		O.name = 'Id_communes'
    Pouvez-vous donner la structure de vos 4 tables, ainsi que la liste des relations que vous voulez cr�er ? J'ai publi� un tutoriel ici � ce sujet (ne scriptez pas les donn�es, nous n'en avons pas besoin).

    @++

  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
    22 001
    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 001
    Billets dans le blog
    6
    Par d�faut
    Citation Envoy� par iberserk Voir le message
    C'est simple, une contrainte FOREIGN KEY doit avoir un nom unique sur ta base...
    C'est faux.... une contrainte doit avoir un nom unique au sein du SCHEMA SQL (norme SQL) et non de la base.

    D�mo :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    USE tempdb;
    GO
     
    CREATE TABLE dbo.T0 (K INT PRIMARY KEY);
    CREATE TABLE dbo.T1 (K1 INT CONSTRAINT FK FOREIGN KEY REFERENCES dbo.T0 (K));
     
    CREATE SCHEMA S1
    CREATE TABLE T1 (K1 INT CONSTRAINT FK FOREIGN KEY REFERENCES dbo.T0 (K));
     
    CREATE SCHEMA S2
    CREATE TABLE T1 (K1 INT CONSTRAINT FK FOREIGN KEY REFERENCES dbo.T0 (K));
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE CONSTRAINT_TYPE = 'FOREIGN KEY'
    R�sultat :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    CONSTRAINT_CATALOG      CONSTRAINT_SCHEMA     CONSTRAINT_NAME   
    ----------------------- --------------------- ------------------
    tempdb                  dbo                   FK                
    tempdb                  S1                    FK                
    tempdb                  S2                    FK
    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
    R�dacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de donn�es / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 001
    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 001
    Billets dans le blog
    6
    Par d�faut
    Citation Envoy� par mia06 Voir le message
    merci pour ton aide mais comme je suis une vraie t�che en BDD et que j'ai trouv� 30 fa�on de d�clarer une FK sur le net je me retrouve � errer comme une �me en peine sur les forums et le pire c'est que je parle Anglais ..
    Le mieux serait de commencer � apprendre SQL ! Mon site web, comme mon livre peuvent vous y aider...
    Notamment : http://sqlpro.developpez.com/cours/s...partie2#L7.1.7

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

  7. #7
    Membre Expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de donn�es
    Inscrit en
    Novembre 2004
    Messages
    1 795
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : Architecte de base de donn�es
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Par d�faut
    C'est faux.... une contrainte doit avoir un nom unique au sein du SCHEMA SQL (norme SQL) et non de la base.

    Certes... il faut �tre pr�cis m�me si je doute que la notion de sch�ma lui parle ici...

  8. #8
    Membre averti
    Inscrit en
    Janvier 2011
    Messages
    10
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 10
    Par d�faut
    Merci pour votre aide messieurs , vous m'avez �t� d'un grand secours

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Performance d'une requ�te sous SQL Server 2005
    Par Menoto dans le forum D�veloppement
    R�ponses: 4
    Dernier message: 20/03/2008, 09h58
  2. Performance d'une requ�te sous SQL Server 2005
    Par Menoto dans le forum MS SQL Server
    R�ponses: 4
    Dernier message: 20/03/2008, 09h58
  3. cr�ation d'une table de fait sous sql server 2005
    Par kev0631 dans le forum MS SQL Server
    R�ponses: 10
    Dernier message: 19/07/2007, 14h45
  4. R�ponses: 5
    Dernier message: 03/07/2007, 14h43
  5. R�ponses: 1
    Dernier message: 13/12/2006, 14h18

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