Bonjour,
je debute et je cherche a utiliser les trigger pour faire la chose suivante:
Lors d'une insertion dans une table T_POSITION je voudrai faire un update
sur une table T_LAST_POSITION.
Pour cela je cré un triger after insert on.
Mon probleme est de passer en parametre les valeurs des champs de T_POSITION
a T_LAST_POSITION.
J'essaie d'appeler la table inserted mais un message d'erreur m'indique que
l'entete inserted.xxxx ne correspond a aucune table ou alias.
Merci de l'aide que vous pouvez m'apporter.
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
Philippe T [MS]
Bonjour,
Chez moi cela fonctionne :
<< if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Trigger_Insert]') and OBJECTPROPERTY(id, N'IsTrigger') = 1) drop trigger [dbo].[Trigger_Insert] GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[POSITION]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[POSITION] GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[POSITION_LAST]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[POSITION_LAST] GO
CREATE TABLE [dbo].[POSITION] ( [ID] [int] IDENTITY (1, 1) NOT NULL , [VAL] [char] (10) COLLATE French_CI_AS NOT NULL ) ON [PRIMARY] GO
CREATE TABLE [dbo].[POSITION_LAST] ( [LAST_VAL] [char] (10) COLLATE French_CI_AS NOT NULL ) ON [PRIMARY] GO
ALTER TABLE [dbo].[POSITION] WITH NOCHECK ADD CONSTRAINT [PK_POSITION] PRIMARY KEY CLUSTERED ( [ID] ) ON [PRIMARY] GO
SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO
CREATE TRIGGER Trigger_Insert ON [dbo].[POSITION] FOR INSERT AS
UPDATE POSITION_LAST SET LAST_VAL = i.VAL FROM inserted i GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO
INSERT INTO POSITION_LAST(LAST_VAL) VALUES('0')
---------------------------------------------------------------------- Philippe TROTIN - Microsoft Service France
"Laurent HOUTANT" wrote in message news:%
Bonjour, je debute et je cherche a utiliser les trigger pour faire la chose suivante: Lors d'une insertion dans une table T_POSITION je voudrai faire un update sur une table T_LAST_POSITION. Pour cela je cré un triger after insert on. Mon probleme est de passer en parametre les valeurs des champs de T_POSITION a T_LAST_POSITION. J'essaie d'appeler la table inserted mais un message d'erreur m'indique que l'entete inserted.xxxx ne correspond a aucune table ou alias. Merci de l'aide que vous pouvez m'apporter.
Frederic
Bonjour,
Chez moi cela fonctionne :
<<
if exists (select * from dbo.sysobjects where id =
object_id(N'[dbo].[Trigger_Insert]') and OBJECTPROPERTY(id, N'IsTrigger') =
1)
drop trigger [dbo].[Trigger_Insert]
GO
if exists (select * from dbo.sysobjects where id =
object_id(N'[dbo].[POSITION]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[POSITION]
GO
if exists (select * from dbo.sysobjects where id =
object_id(N'[dbo].[POSITION_LAST]') and OBJECTPROPERTY(id, N'IsUserTable') =
1)
drop table [dbo].[POSITION_LAST]
GO
CREATE TABLE [dbo].[POSITION] (
[ID] [int] IDENTITY (1, 1) NOT NULL ,
[VAL] [char] (10) COLLATE French_CI_AS NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[POSITION_LAST] (
[LAST_VAL] [char] (10) COLLATE French_CI_AS NOT NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[POSITION] WITH NOCHECK ADD
CONSTRAINT [PK_POSITION] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE TRIGGER Trigger_Insert ON [dbo].[POSITION]
FOR INSERT
AS
UPDATE POSITION_LAST
SET LAST_VAL = i.VAL
FROM inserted i
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
INSERT INTO POSITION_LAST(LAST_VAL) VALUES('0')
----------------------------------------------------------------------
Philippe TROTIN - Microsoft Service France
"Laurent HOUTANT" <aretirer.fr.bal@wanadoo.fr.nospam> wrote in message
news:%23Xi6rIW4FHA.1140@tk2msftngp13.phx.gbl...
Bonjour,
je debute et je cherche a utiliser les trigger pour faire la chose
suivante:
Lors d'une insertion dans une table T_POSITION je voudrai faire un update
sur une table T_LAST_POSITION.
Pour cela je cré un triger after insert on.
Mon probleme est de passer en parametre les valeurs des champs de
T_POSITION a T_LAST_POSITION.
J'essaie d'appeler la table inserted mais un message d'erreur m'indique
que l'entete inserted.xxxx ne correspond a aucune table ou alias.
Merci de l'aide que vous pouvez m'apporter.
<< if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Trigger_Insert]') and OBJECTPROPERTY(id, N'IsTrigger') = 1) drop trigger [dbo].[Trigger_Insert] GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[POSITION]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[POSITION] GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[POSITION_LAST]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[POSITION_LAST] GO
CREATE TABLE [dbo].[POSITION] ( [ID] [int] IDENTITY (1, 1) NOT NULL , [VAL] [char] (10) COLLATE French_CI_AS NOT NULL ) ON [PRIMARY] GO
CREATE TABLE [dbo].[POSITION_LAST] ( [LAST_VAL] [char] (10) COLLATE French_CI_AS NOT NULL ) ON [PRIMARY] GO
ALTER TABLE [dbo].[POSITION] WITH NOCHECK ADD CONSTRAINT [PK_POSITION] PRIMARY KEY CLUSTERED ( [ID] ) ON [PRIMARY] GO
SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO
CREATE TRIGGER Trigger_Insert ON [dbo].[POSITION] FOR INSERT AS
UPDATE POSITION_LAST SET LAST_VAL = i.VAL FROM inserted i GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO
INSERT INTO POSITION_LAST(LAST_VAL) VALUES('0')
---------------------------------------------------------------------- Philippe TROTIN - Microsoft Service France
"Laurent HOUTANT" wrote in message news:%
Bonjour, je debute et je cherche a utiliser les trigger pour faire la chose suivante: Lors d'une insertion dans une table T_POSITION je voudrai faire un update sur une table T_LAST_POSITION. Pour cela je cré un triger after insert on. Mon probleme est de passer en parametre les valeurs des champs de T_POSITION a T_LAST_POSITION. J'essaie d'appeler la table inserted mais un message d'erreur m'indique que l'entete inserted.xxxx ne correspond a aucune table ou alias. Merci de l'aide que vous pouvez m'apporter.