Bonjour,
ma question ca peut etre sembler idiote.
J'ai cr=E9e un trigger sur un table, et en fin de compte il=20
vaut mieux le mettre sur une vue et enlever celui de la=20
table
J'ai donc cr=E9e une vue "TestView", et quand dans sql=20
query analyser je tente d'ajouter un trigger dessus=20
j'obtiens le message d'erreur me disant :=20
Server: Msg 208, Level 16, State 4, Procedure T_TestView,=20
Line 1
Invalid object name 'TestView'.
Voila la syntaxe pour la cr=E9ation du trigger :
CREATE TRIGGER [T_TestView]=20
ON [TestView]
FOR INSERT, UPDATE, DELETE=20
AS
begin=20
exec master..sp_posts 'TestView'=20
end
C'est excatement le nom de ma vue (j'ai tout test=E9 :=20
[dbo].[TestView] ou [dbo].[pubs].[TestView]
j'obtiens toujours l'erreur)
Ce uqi est plus frappant c'est que quand j'ouvre la liste=20
des trigger dans SQL Serveur enterprise manager, par=20
d=E9faut il affiche la syntaxe pour cr=E9er un trigger, et il=20
me met bien :
"CREATE TRIGGER [TRIGGER NAME] ON [dbo].[TestView]=20
FOR INSERT, UPDATE, DELETE=20
AS"
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
mordor
Agnès wrote:
> Bonjour, > ma question ca peut etre sembler idiote. > J'ai crée un trigger sur un table, et en fin de compte il > vaut mieux le mettre sur une vue et enlever celui de la > table > J'ai donc crée une vue "TestView", et quand dans sql > query analyser je tente d'ajouter un trigger dessus > j'obtiens le message d'erreur me disant : > > Server: Msg 208, Level 16, State 4, Procedure T_TestView, > Line 1 > Invalid object name 'TestView'. > > > Voila la syntaxe pour la création du trigger : > > CREATE TRIGGER [T_TestView] > ON [TestView] > FOR INSERT, UPDATE, DELETE > AS > begin > exec master..sp_posts 'TestView' > end > > > C'est excatement le nom de ma vue (j'ai tout testé : > [dbo].[TestView] ou [dbo].[pubs].[TestView] > j'obtiens toujours l'erreur) > > Ce uqi est plus frappant c'est que quand j'ouvre la liste > des trigger dans SQL Serveur enterprise manager, par > défaut il affiche la syntaxe pour créer un trigger, et il > me met bien : > > "CREATE TRIGGER [TRIGGER NAME] ON [dbo].[TestView] > FOR INSERT, UPDATE, DELETE > AS" > > Où est le problème ? > > Merci il faut utiliser "INSTEAD OF" ça devrait mieux marcher... par exemple :
CREATE TRIGGER [T_TestView] ON [TestView] INSTEAD OF INSERT, UPDATE, DELETE AS begin <;;;;;;;;les instructions;;;;;;;;;> end
Emmanuel PELLEGRIN Conseil en Informatique Email : epconseil at free.fr
Agnès wrote:
> Bonjour,
> ma question ca peut etre sembler idiote.
> J'ai crée un trigger sur un table, et en fin de compte il
> vaut mieux le mettre sur une vue et enlever celui de la
> table
> J'ai donc crée une vue "TestView", et quand dans sql
> query analyser je tente d'ajouter un trigger dessus
> j'obtiens le message d'erreur me disant :
>
> Server: Msg 208, Level 16, State 4, Procedure T_TestView,
> Line 1
> Invalid object name 'TestView'.
>
>
> Voila la syntaxe pour la création du trigger :
>
> CREATE TRIGGER [T_TestView]
> ON [TestView]
> FOR INSERT, UPDATE, DELETE
> AS
> begin
> exec master..sp_posts 'TestView'
> end
>
>
> C'est excatement le nom de ma vue (j'ai tout testé :
> [dbo].[TestView] ou [dbo].[pubs].[TestView]
> j'obtiens toujours l'erreur)
>
> Ce uqi est plus frappant c'est que quand j'ouvre la liste
> des trigger dans SQL Serveur enterprise manager, par
> défaut il affiche la syntaxe pour créer un trigger, et il
> me met bien :
>
> "CREATE TRIGGER [TRIGGER NAME] ON [dbo].[TestView]
> FOR INSERT, UPDATE, DELETE
> AS"
>
> Où est le problème ?
>
> Merci
il faut utiliser "INSTEAD OF" ça devrait mieux marcher...
par exemple :
CREATE TRIGGER [T_TestView]
ON [TestView]
INSTEAD OF INSERT, UPDATE, DELETE
AS
begin
<;;;;;;;;les instructions;;;;;;;;;>
end
Emmanuel PELLEGRIN
Conseil en Informatique
Email : epconseil at free.fr
> Bonjour, > ma question ca peut etre sembler idiote. > J'ai crée un trigger sur un table, et en fin de compte il > vaut mieux le mettre sur une vue et enlever celui de la > table > J'ai donc crée une vue "TestView", et quand dans sql > query analyser je tente d'ajouter un trigger dessus > j'obtiens le message d'erreur me disant : > > Server: Msg 208, Level 16, State 4, Procedure T_TestView, > Line 1 > Invalid object name 'TestView'. > > > Voila la syntaxe pour la création du trigger : > > CREATE TRIGGER [T_TestView] > ON [TestView] > FOR INSERT, UPDATE, DELETE > AS > begin > exec master..sp_posts 'TestView' > end > > > C'est excatement le nom de ma vue (j'ai tout testé : > [dbo].[TestView] ou [dbo].[pubs].[TestView] > j'obtiens toujours l'erreur) > > Ce uqi est plus frappant c'est que quand j'ouvre la liste > des trigger dans SQL Serveur enterprise manager, par > défaut il affiche la syntaxe pour créer un trigger, et il > me met bien : > > "CREATE TRIGGER [TRIGGER NAME] ON [dbo].[TestView] > FOR INSERT, UPDATE, DELETE > AS" > > Où est le problème ? > > Merci il faut utiliser "INSTEAD OF" ça devrait mieux marcher... par exemple :
CREATE TRIGGER [T_TestView] ON [TestView] INSTEAD OF INSERT, UPDATE, DELETE AS begin <;;;;;;;;les instructions;;;;;;;;;> end
Emmanuel PELLEGRIN Conseil en Informatique Email : epconseil at free.fr
Fred BROUARD
pour créer un trigger en INSERT UPDATE ou DELETE sur une vue, il faut que cette vue soit "updatable".
Les règles pour qu'une vue le soit sont stricte. Lire : http://sqlpro.developpez.com/SQL_AZ_7b.html#SCHEMA8
Dans le cas contraire on peut utiliser un trigger INSTEAD OF...
A +
-- Frédéric BROUARD, MVP MS SQL Server. Expert Langage SQL / Delphi / web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ************************ www.datasapiens.com *************************
Agnès a écrit:
Bonjour, ma question ca peut etre sembler idiote. J'ai crée un trigger sur un table, et en fin de compte il vaut mieux le mettre sur une vue et enlever celui de la table J'ai donc crée une vue "TestView", et quand dans sql query analyser je tente d'ajouter un trigger dessus j'obtiens le message d'erreur me disant :
Server: Msg 208, Level 16, State 4, Procedure T_TestView, Line 1 Invalid object name 'TestView'.
Voila la syntaxe pour la création du trigger :
CREATE TRIGGER [T_TestView] ON [TestView] FOR INSERT, UPDATE, DELETE AS begin exec master..sp_posts 'TestView' end
C'est excatement le nom de ma vue (j'ai tout testé : [dbo].[TestView] ou [dbo].[pubs].[TestView] j'obtiens toujours l'erreur)
Ce uqi est plus frappant c'est que quand j'ouvre la liste des trigger dans SQL Serveur enterprise manager, par défaut il affiche la syntaxe pour créer un trigger, et il me met bien :
"CREATE TRIGGER [TRIGGER NAME] ON [dbo].[TestView] FOR INSERT, UPDATE, DELETE AS"
Où est le problème ?
Merci
pour créer un trigger en INSERT UPDATE ou DELETE sur une vue,
il faut que cette vue soit "updatable".
Les règles pour qu'une vue le soit sont stricte. Lire :
http://sqlpro.developpez.com/SQL_AZ_7b.html#SCHEMA8
Dans le cas contraire on peut utiliser un trigger INSTEAD OF...
A +
--
Frédéric BROUARD, MVP MS SQL Server. Expert Langage SQL / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************
Agnès a écrit:
Bonjour,
ma question ca peut etre sembler idiote.
J'ai crée un trigger sur un table, et en fin de compte il
vaut mieux le mettre sur une vue et enlever celui de la
table
J'ai donc crée une vue "TestView", et quand dans sql
query analyser je tente d'ajouter un trigger dessus
j'obtiens le message d'erreur me disant :
Server: Msg 208, Level 16, State 4, Procedure T_TestView,
Line 1
Invalid object name 'TestView'.
Voila la syntaxe pour la création du trigger :
CREATE TRIGGER [T_TestView]
ON [TestView]
FOR INSERT, UPDATE, DELETE
AS
begin
exec master..sp_posts 'TestView'
end
C'est excatement le nom de ma vue (j'ai tout testé :
[dbo].[TestView] ou [dbo].[pubs].[TestView]
j'obtiens toujours l'erreur)
Ce uqi est plus frappant c'est que quand j'ouvre la liste
des trigger dans SQL Serveur enterprise manager, par
défaut il affiche la syntaxe pour créer un trigger, et il
me met bien :
"CREATE TRIGGER [TRIGGER NAME] ON [dbo].[TestView]
FOR INSERT, UPDATE, DELETE
AS"
pour créer un trigger en INSERT UPDATE ou DELETE sur une vue, il faut que cette vue soit "updatable".
Les règles pour qu'une vue le soit sont stricte. Lire : http://sqlpro.developpez.com/SQL_AZ_7b.html#SCHEMA8
Dans le cas contraire on peut utiliser un trigger INSTEAD OF...
A +
-- Frédéric BROUARD, MVP MS SQL Server. Expert Langage SQL / Delphi / web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ************************ www.datasapiens.com *************************
Agnès a écrit:
Bonjour, ma question ca peut etre sembler idiote. J'ai crée un trigger sur un table, et en fin de compte il vaut mieux le mettre sur une vue et enlever celui de la table J'ai donc crée une vue "TestView", et quand dans sql query analyser je tente d'ajouter un trigger dessus j'obtiens le message d'erreur me disant :
Server: Msg 208, Level 16, State 4, Procedure T_TestView, Line 1 Invalid object name 'TestView'.
Voila la syntaxe pour la création du trigger :
CREATE TRIGGER [T_TestView] ON [TestView] FOR INSERT, UPDATE, DELETE AS begin exec master..sp_posts 'TestView' end
C'est excatement le nom de ma vue (j'ai tout testé : [dbo].[TestView] ou [dbo].[pubs].[TestView] j'obtiens toujours l'erreur)
Ce uqi est plus frappant c'est que quand j'ouvre la liste des trigger dans SQL Serveur enterprise manager, par défaut il affiche la syntaxe pour créer un trigger, et il me met bien :
"CREATE TRIGGER [TRIGGER NAME] ON [dbo].[TestView] FOR INSERT, UPDATE, DELETE AS"
Où est le problème ?
Merci
Agnès
Merci :)
-----Message d'origine----- Agnès wrote:
> Bonjour, > ma question ca peut etre sembler idiote. > J'ai crée un trigger sur un table, et en fin de
compte il
> vaut mieux le mettre sur une vue et enlever celui de
la
> table > J'ai donc crée une vue "TestView", et quand dans sql > query analyser je tente d'ajouter un trigger dessus > j'obtiens le message d'erreur me disant : > > Server: Msg 208, Level 16, State 4, Procedure
T_TestView,
> Line 1 > Invalid object name 'TestView'. > > > Voila la syntaxe pour la création du trigger : > > CREATE TRIGGER [T_TestView] > ON [TestView] > FOR INSERT, UPDATE, DELETE > AS > begin > exec master..sp_posts 'TestView' > end > > > C'est excatement le nom de ma vue (j'ai tout testé : > [dbo].[TestView] ou [dbo].[pubs].[TestView] > j'obtiens toujours l'erreur) > > Ce uqi est plus frappant c'est que quand j'ouvre la
liste
> des trigger dans SQL Serveur enterprise manager, par > défaut il affiche la syntaxe pour créer un trigger,
et il
> me met bien : > > "CREATE TRIGGER [TRIGGER NAME] ON [dbo].[TestView] > FOR INSERT, UPDATE, DELETE > AS" > > Où est le problème ? > > Merci il faut utiliser "INSTEAD OF" ça devrait mieux marcher... par exemple :
CREATE TRIGGER [T_TestView] ON [TestView] INSTEAD OF INSERT, UPDATE, DELETE AS begin <;;;;;;;;les instructions;;;;;;;;;> end
Emmanuel PELLEGRIN Conseil en Informatique Email : epconseil at free.fr .
Merci :)
-----Message d'origine-----
Agnès wrote:
> Bonjour,
> ma question ca peut etre sembler idiote.
> J'ai crée un trigger sur un table, et en fin de
compte il
> vaut mieux le mettre sur une vue et enlever celui de
la
> table
> J'ai donc crée une vue "TestView", et quand dans sql
> query analyser je tente d'ajouter un trigger dessus
> j'obtiens le message d'erreur me disant :
>
> Server: Msg 208, Level 16, State 4, Procedure
T_TestView,
> Line 1
> Invalid object name 'TestView'.
>
>
> Voila la syntaxe pour la création du trigger :
>
> CREATE TRIGGER [T_TestView]
> ON [TestView]
> FOR INSERT, UPDATE, DELETE
> AS
> begin
> exec master..sp_posts 'TestView'
> end
>
>
> C'est excatement le nom de ma vue (j'ai tout testé :
> [dbo].[TestView] ou [dbo].[pubs].[TestView]
> j'obtiens toujours l'erreur)
>
> Ce uqi est plus frappant c'est que quand j'ouvre la
liste
> des trigger dans SQL Serveur enterprise manager, par
> défaut il affiche la syntaxe pour créer un trigger,
et il
> me met bien :
>
> "CREATE TRIGGER [TRIGGER NAME] ON [dbo].[TestView]
> FOR INSERT, UPDATE, DELETE
> AS"
>
> Où est le problème ?
>
> Merci
il faut utiliser "INSTEAD OF" ça devrait mieux marcher...
par exemple :
CREATE TRIGGER [T_TestView]
ON [TestView]
INSTEAD OF INSERT, UPDATE, DELETE
AS
begin
<;;;;;;;;les instructions;;;;;;;;;>
end
Emmanuel PELLEGRIN
Conseil en Informatique
Email : epconseil at free.fr
.
> Bonjour, > ma question ca peut etre sembler idiote. > J'ai crée un trigger sur un table, et en fin de
compte il
> vaut mieux le mettre sur une vue et enlever celui de
la
> table > J'ai donc crée une vue "TestView", et quand dans sql > query analyser je tente d'ajouter un trigger dessus > j'obtiens le message d'erreur me disant : > > Server: Msg 208, Level 16, State 4, Procedure
T_TestView,
> Line 1 > Invalid object name 'TestView'. > > > Voila la syntaxe pour la création du trigger : > > CREATE TRIGGER [T_TestView] > ON [TestView] > FOR INSERT, UPDATE, DELETE > AS > begin > exec master..sp_posts 'TestView' > end > > > C'est excatement le nom de ma vue (j'ai tout testé : > [dbo].[TestView] ou [dbo].[pubs].[TestView] > j'obtiens toujours l'erreur) > > Ce uqi est plus frappant c'est que quand j'ouvre la
liste
> des trigger dans SQL Serveur enterprise manager, par > défaut il affiche la syntaxe pour créer un trigger,
et il
> me met bien : > > "CREATE TRIGGER [TRIGGER NAME] ON [dbo].[TestView] > FOR INSERT, UPDATE, DELETE > AS" > > Où est le problème ? > > Merci il faut utiliser "INSTEAD OF" ça devrait mieux marcher... par exemple :
CREATE TRIGGER [T_TestView] ON [TestView] INSTEAD OF INSERT, UPDATE, DELETE AS begin <;;;;;;;;les instructions;;;;;;;;;> end
Emmanuel PELLEGRIN Conseil en Informatique Email : epconseil at free.fr .