Vue partitionnée SQL Server 2000

Vue partitionnée SQL Server 2000 - SQL/NoSQL - Programmation

Marsh Posté le 11-04-2002 à 10:32:51    

Bonjour,
 
Sous Microsoft SQL Server 2000, j'ai créé une vue partitionnée. Cette vue fonctionne parfaitement, et comporte bien les données de toutes les tables.
 
Lorsque je veux faire une modification sur un enregistrement (UPDATE), ça fonctionne. Par contre, lorsque je veux ajouter un enregistrement (INSERT), j'ai le message suivant :
 
Impossible de mettre à jour la vue partitionnée 'Vue' car la table '[ma_table]' comporte une contrainte DEFAULT
 
J'ai bien mis TOUS les champs dans ma commande INSERT, et le champ de la contrainte est bien renseigné !
 
Que faire ???  :cry:

Reply

Marsh Posté le 11-04-2002 à 10:32:51   

Reply

Marsh Posté le 11-04-2002 à 12:48:44    

SplitForm a écrit a écrit :

Bonjour,
 
Sous Microsoft SQL Server 2000, j'ai créé une vue partitionnée. Cette vue fonctionne parfaitement, et comporte bien les données de toutes les tables.
 
Lorsque je veux faire une modification sur un enregistrement (UPDATE), ça fonctionne. Par contre, lorsque je veux ajouter un enregistrement (INSERT), j'ai le message suivant :
 
Impossible de mettre à jour la vue partitionnée 'Vue' car la table '[ma_table]' comporte une contrainte DEFAULT
 
J'ai bien mis TOUS les champs dans ma commande INSERT, et le champ de la contrainte est bien renseigné !
 
Que faire ???  :cry:  




 
tu peux pas etre plus precis avec un exemple de code SQL?
c'est ptet paske tu met tous les champs, paske les vues des fois c cho a faires des insert et update dessus
regarde si ta vue est bien faite...


---------------
Narf... It is broken...
Reply

Marsh Posté le 11-04-2002 à 14:10:03    

DLR a écrit a écrit :

 
 
tu peux pas etre plus precis avec un exemple de code SQL?
c'est ptet paske tu met tous les champs, paske les vues des fois c cho a faires des insert et update dessus
regarde si ta vue est bien faite...  




 
 :hello:  
 
Ben, dans une vue partitionnée, il faut mettre tous les champs de chaque table (les tables ayant une structure identique).
 
En fait, j'ai fait un :
 
CREATE VIEW [dbo].[mavue]
AS
SELECT *
FROM  matable1
UNION ALL
SELECT *
FROM  matable2
UNION ALL
SELECT *
FROM  matable13
UNION ALL
.....
 
Suivant la valeur d'1 champ, l'enregistrement se fait automatiquement dans la table 1 ou 2 ou ... C'est SQL Serveur qui gère ça, suivant une contrainte CHECK sur chaque table.
 
Exemple : Dans la structure de ces tables, il y a un champ caractère nommé CHOIX_TYPE, qui peut avoir la valeur A, B, C, ...
 
Si CHOIX_TYPE = A alors l'enregistrement est sauvegardé dans la table1
Si CHOIX_TYPE = B enregistrement dans table2
Si CHOIX_TYPE = C enregistrement dans table3
...
 
L'instruction SELECT fonctionne bien.
L'instruction UPDATE aussi. Même si je change la valeur de CHOIX_TYPE, SQL serveur le delete bien de la table d'origine pour le mettre dans la table de destination (Donc dans le cas ou CHOIX_TYPE était A et devient B, SQL Serveur delete l'enregistrement de Table1 pour le mettre dans table2).
 
Par contre, l'instruction INSERT ne fonctionne pas !!!  :cry:  
L'instruction que je fais ressemble à ça :  
INSERT INTO mavue (champ1, champ2, CHOIX_TYPE, ...) VALUES (0, 0, 'A', ...)
 
La syntaxe est correcte, mais l'ordre ne passe pas. Si je vais directement dans ma vue via SQL Server Entreprise Manager, et que je rajoute un enregistrement, j'ai le même message  :(

Reply

Marsh Posté le 17-04-2002 à 16:01:46    

Ca inspire personne :D  
 
Bon, j'ai des news au sujet de mon affaire. Apparemment, il s'agit d'un problème au niveau des Triggers qu'il y a sur les tables suite à la réplication de celles-ci.
 
Lorsque je crée une réplication, SQL serveur crée des Triggers sur chacune des tables. Et lors de la validation, il me dit qu'il ne peut pas faire d'UPDATE à cause du trigger !!!  :crazy:  
 
Sur le site de Microsoft, la référence est Q304096 -> Ici
 
Aidez moi  :cry:

 

[jfdsdjhfuetppo]--Message édité par SplitForm--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 18-04-2002 à 23:27:41    

Mais !!!  :na:  
 
Personne a des notions d'SQL Serveur ici   :sarcastic:  
 
Siouplait  :cry:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed