OVH Cloud OVH Cloud

Mise a jourvia un trigger

1 réponse
Avatar
Laurent HOUTANT
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

1 réponse

Avatar
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