Clé étrangère et vue

cs_chamallow Messages postés 363 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 janvier 2007 - 19 avril 2006 à 16:21
cs_chamallow Messages postés 363 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 janvier 2007 - 25 avril 2006 à 11:19
Bonjour,

J'ai cherché la réponse à ma question mais je n'ai rien trouvé
Est-il possible de créer une table ayant une clé étrangère (en fait ça sera la clé primaire avec une autre clé étrangère) sur une vue???

Merci de votre aide!

11 réponses

Mindiell Messages postés 559 Date d'inscription jeudi 25 juillet 2002 Statut Membre Dernière intervention 5 septembre 2007 1
20 avril 2006 à 14:14
Je ne pense pas que cela soit possible, tu utilises quel SGBD ?
0
cs_chamallow Messages postés 363 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 janvier 2007 1
20 avril 2006 à 14:55
Oups désolée, j'ai oublié de la dire : SQL SERVER.

Mais en fait je sais pas comment faire parce que j'ai pas vraiment le choix, ce que je fais doit être relié à un autre projet et pour cela je dois faire un lien avec cette vue (même si j'en ai pas envie ). En fait je dois faire une table qui fera le lien entre une de mes tables et cette vue (et vu les cardinalités, ben cette nouvelle table aura une clé primaire constitué de deux clé étragères, une sur la table, et une sur la vue ...).

Là, je coince !!!
0
Mindiell Messages postés 559 Date d'inscription jeudi 25 juillet 2002 Statut Membre Dernière intervention 5 septembre 2007 1
20 avril 2006 à 15:01
Après lecture de la doc, il n'est écrit nulle part que c'est impossible.
Je pense tout de même que la liaison directement à la table serait mieux ^^

Bon courage !
0
cs_chamallow Messages postés 363 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 janvier 2007 1
20 avril 2006 à 15:35
J'aurais bien aimé mais apparemment j'ai pas le droit
Moi aussi j'ais trouvé nul part que c'était interdit (je cherche depuis hier), par contre j'ai essayé de la faire, et j'ai pas réussi :

Voilà mon code :
CREATE TABLE devis_clientAffaire
(
numDevis VARCHAR(6) REFERENCES devis_affaires(numDevis),
IdClient INTEGER REFERENCES tbl_clients(IdClient),
CONSTRAINT PK_clientAffaires PRIMARY KEY (numDevis,IdClient)
);

Et voilà je ce me dis SQL Server :
Serveur : Msg 1768, Niveau 16, État 1, Ligne 1
La clé étrangère 'FK__devis_cli__IdCli__3163F3EF' fait référence à l'objet 'tbl_clients' qui n'est pas une table d'utilisateur.
Serveur : Msg 1750, Niveau 16, État 1, Ligne 1
Impossible de créer la contrainte. Voir les erreurs précédentes.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mindiell Messages postés 559 Date d'inscription jeudi 25 juillet 2002 Statut Membre Dernière intervention 5 septembre 2007 1
20 avril 2006 à 15:49
Ah, là il s'agit peut-être des droits...
A qui appartient la table devis_clientAffaire ?
et tbl_clients ?
0
cs_chamallow Messages postés 363 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 janvier 2007 1
20 avril 2006 à 15:55
Ben c'est ma table mais pas ma vue. J'ai demandé à l'adminisatrateur de la base, il m'a dit qu'il n'y a aucun droit spécifique sur la vue.
0
Mindiell Messages postés 559 Date d'inscription jeudi 25 juillet 2002 Statut Membre Dernière intervention 5 septembre 2007 1
20 avril 2006 à 17:10
Euh,

si tu as Entreprise Manager, vérifie les propriétaires :
dbo ou autre...
a mon avis :
tbl_clients appartient à "dbo"
devis_ClientsAffaires appartient à "chamallow"

Ce n'est pas une question de droit là,
0
cs_chamallow Messages postés 363 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 janvier 2007 1
20 avril 2006 à 17:13
Bon, alors j'ai regardé, c'est toujours dbo le propriétaire ...

Peut-être que c'est impossible ... Mais j'ai rien trouvé qui le signalait ...
0
cs_chamallow Messages postés 363 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 janvier 2007 1
20 avril 2006 à 21:00
Bon, même si sur la table principale y'avais une clé primaire, c'est il
n'y en a pas déjà sur la vue, et puis c'est une vue qui est dans la
base où se trouve ma table mais c'est une vue d'une table d'une autre
base ...



Alors qu'en pensez-vous?
0
aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 2
24 avril 2006 à 18:16
salut

pourquoi ne pas faire le lien directement avec la table sur laquelle s'appuie la vue ?


si j'ai bien compris, comme tu as plusieurs projets, la table avec laquelle tu veux creer ta clef etrangere se trouve dans une autre base de données ?





si c'est ca, dans tous les cas je ne pense pas que tu pourra créer une contrainte d'intégrité.


par contre ce que tu peux faire, c'est un trigger, qui verifie a chaque a jout, suppression, modification, si ta contrainte est respectée.
0
cs_chamallow Messages postés 363 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 janvier 2007 1
25 avril 2006 à 11:19
Oui je crois qu c'est ce que je vais faire :)

Merci pour vos réponses!
0