-
UPDATE d'une vue
Bonjour je vous poste la définition de ma vue :
CREATE VIEW dbo.vCouleurs
AS
SELECT IdCouleurs, sRVB, sValTexte AS sNomCouleur FROM Couleurs LEFT JOIN Textes ON Couleurs.IdTexteCouleur=Textes.IdTextes
habituellement je travaille avec ACCESS alors les vues, je n'en avais jamais fait, je voyais à peut près quel en était l'intérêt mais la soit j'ai mal définit mes tables ou ma vue, soit le système n'est pas aussi extraordinaire qu'il en a l'air.
J'ai voulu faire :
INSERT INTO vCouleurs (sRVB, sNomCouleur) VALUES ('#FFFFFF','RAL 9001')
Réaction :
[Microsoft][ODBC SQL Server Driver][SQL Server]La vue ou la fonction 'vCouleurs' ne peut pas être mise à jour car la modification affecte les tables de base multiples.
Faut-il déclaré autrement les tables, ou est-ce impossible ?
Alban
-
Pour que cela passe, il faut obligatoirement que les champs qui ne seront pas renseignés lors de l'insert au travers de la vue, soient "nullables", hormis ceux de la jointure.
-
Table Textes
IdTextes : NULL Interdit
sValTexte NULL ok
IdLangue NULL Ok
Table Couleurs
IdCouleurs : NULL Interdit
IdTexteCouleur : NULL ok
sRVB : NULL ok
La jointure se fait entre IdTexteCouleur et IdTextes, je ne peux pas donner de valeur à IdCouleurs puisque c'est ma clé ! (is identity, increment=1)
Les autres valeurs sont bien "NULLABLES"
Je cale ...