Bonjour à tous,

Lors de nos tests fonctionnels hier, j'ai pu constater que nous avons réussi à supprimer des lignes dans une table alors qu'il existe des références dans une autre.
Le résultat est que je me retrouve avec des lignes orphelines qui ne sont plus liées à rien.

voici le ddl des tables et foreign keys :


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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
 
 
 
CREATE TABLE [dbo].[COLIS](
	[NO_COLIS] [bigint] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
	[DATE_CREATION] [datetime] NOT NULL,
	[NO_TRIEUR] [smallint] NULL,
	[NO_PLAN_TRI] [int] NULL,
 CONSTRAINT [PK_COLIS_NO_COLIS] PRIMARY KEY CLUSTERED 
(
	[NO_COLIS] 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
 
 
CREATE TABLE [dbo].[EVENEMENT_COLIS](
	[NO_EVENEMENT_COLIS] [bigint] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
	[NO_COLIS] [bigint] NOT NULL,
	[TYPE_EVENEMENT_COLIS] [tinyint] NOT NULL,
	[DATE_EVENEMENT] [datetime] NOT NULL,
	[TEMPS_TRAITEMENT] [int] NOT NULL,
 CONSTRAINT [PK_EVENEMENT_COLIS_NO_EVENEMENT_COLIS] PRIMARY KEY CLUSTERED 
(
	[NO_EVENEMENT_COLIS] 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].[EVENEMENT_COLIS]  WITH CHECK ADD  CONSTRAINT [FK_EVENEMENT_COLIS_NO_COLIS] FOREIGN KEY([NO_COLIS])
REFERENCES [dbo].[COLIS] ([NO_COLIS])
GO
 
ALTER TABLE [dbo].[EVENEMENT_COLIS] CHECK CONSTRAINT [FK_EVENEMENT_COLIS_NO_COLIS]
GO
Mon test comporte trois processus :
- un qui insère dans la table COLIS des nouveaux enregistrements
- un qui utilise la table colis et qui insère des evenement_colis
- un qui supprime les anciens colis et les evenements qui lui sont rattachés

Il n'y a pas de transactions, seulement des procédures stoquées qui font les insert/update/delete
Je suis sur un serveur SQL 2016 Standard edition v13.0.4001.0 (SP1)

J'ai don cune ligne d'evenement colis mais plus le colis qui lui correspond.

Comment est ce possible ???

Merci !