Bonjour à tous,

J'ai besoin d'une clarification sur la mise à jour des vues(j'utilise SQL Server 2000).

Créons une table et sa vue associée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
CREATE TABLE T_INT (I INT)
GO
CREATE VIEW V_INT
AS
SELECT 	I,
	I+1 AS J 
FROM T_INT
GO
Essayons maintenant d'inserer une ligne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
INSERT INTO V_INT(I)
VALUES(1)
Ceci provoque l'erreur :
Serveur*: Msg 4406, Niveau 16, État 1, Ligne 1
Impossible de mettre à jour ou d'insérer une vue ou une fonction 'V_INT' car elles contiennent un champ d'une dérivée ou d'une constante.

Par contre la mise à jour fonctionne ?? :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
insert into T_INT(I) values(1)
GO
update V_INT
SET I=2
WHERE I=1
Si quelqu'un peut m'expliquer ce mystère .

Merci d'avance