Bonjour,

Je n'arrive pas à définir un trigger de manière ensembliste. Voici ce que je voudrais arriver à faire...

Soit la table suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
CREATE TABLE [dbo].[T_CONTRACT_CTR](
    [CTR_ID] [int] IDENTITY(1,1) NOT NULL,
    [CTR_DATE] [date] NOT NULL,
    [BRA_ID] [int] NOT NULL,
    [DEP_ID] [smallint] NOT NULL,
    [SUP_ID] [int] NOT NULL,
 CONSTRAINT [PK_T_CONTRACT_CTR] PRIMARY KEY CLUSTERED 
(
    [CTR_ID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
 
GO
 
ALTER TABLE [dbo].[T_CONTRACT_CTR]  WITH CHECK ADD  CONSTRAINT [FK_T_CONTRACT_CTR_TJ_DEP_JSB_JDJ] FOREIGN KEY([DEP_ID], [BRA_ID], [SUP_ID])
REFERENCES [dbo].[TJ_DEP_JSB_JDJ] ([DEP_ID], [BRA_ID], [SUP_ID])
GO
 
ALTER TABLE [dbo].[T_CONTRACT_CTR] CHECK CONSTRAINT [FK_T_CONTRACT_CTR_TJ_DEP_JSB_JDJ]
GO
Lors de l'insertion de nouvelles lignes, il faut que la date insérée dans la colonne CTR_DATE soit plus grande que toutes les autres valeurs de CTR_DATE pour le triple {DEP_ID, BRA_ID, SUP_ID}.

Mais je n'arrive pas à formuler cette condition dans un IF.

Mais p-e que je fais fausse route à la base.