Bonjour a tous, voila je travail sur vb.net et sql server 2005 express et j'ai deux tables, une ordre_mission et une tache. Sachant que pour un ordre_mission je peut avoir plusieurs tache et que pour une tache je peut avoir plusieurs mission, j'ai donc créé une troisième table qui fait le lien entre les deux tables précédentes et dans laquelle je met le numéro de mission et le numéro de la tache.
Pour mes deux premières tables, j'ai mis une incrémentation en automatique, avec l'option identity a true, mais pour ma table qui fait la liaison je n'ai pas cette option d'accessible est pourtant j'ai un message d'erreur à l'insertion.
Voici les descriptifs de mes tables :
TABLE ORDRE_MISSION
TABLE TACHE
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 CREATE TABLE [dbo].[ORDRE_MISSION]( [NumOrdre] [int] IDENTITY(1,1) NOT NULL, [Motifsordre] [varchar](max) COLLATE French_CI_AS NOT NULL, [Observations] [varchar](max) COLLATE French_CI_AS NOT NULL, [NumInt] [int] NOT NULL, [NumBeneficiaire] [int] NOT NULL, CONSTRAINT [PK_ORDRE_MISSION] PRIMARY KEY CLUSTERED ( [NumOrdre] ASC )WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] GO SET ANSI_PADDING OFF GO ALTER TABLE [dbo].[ORDRE_MISSION] WITH CHECK ADD CONSTRAINT [FK_ORDRE_MISSION_ORDRE_MISSION] FOREIGN KEY([NumOrdre]) REFERENCES [dbo].[ORDRE_MISSION] ([NumOrdre]) GO ALTER TABLE [dbo].[ORDRE_MISSION] CHECK CONSTRAINT [FK_ORDRE_MISSION_ORDRE_MISSION] GO ALTER TABLE [dbo].[ORDRE_MISSION] WITH CHECK ADD CONSTRAINT [FK_ORDRE_MISSION_ORDRE_MISSION1] FOREIGN KEY([NumOrdre]) REFERENCES [dbo].[ORDRE_MISSION] ([NumOrdre]) GO ALTER TABLE [dbo].[ORDRE_MISSION] CHECK CONSTRAINT [FK_ORDRE_MISSION_ORDRE_MISSION1]
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 CREATE TABLE [dbo].[TACHE]( [NumTâche] [int] IDENTITY(1,1) NOT NULL, [LibTâche] [varchar](50) COLLATE French_CI_AS NOT NULL, CONSTRAINT [PK_TACHE] PRIMARY KEY CLUSTERED ( [NumTâche] ASC )WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY]
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 CREATE TABLE [dbo].[MISSION_TACHE]( [NumTâche] [int] IDENTITY(1,1) NOT NULL, [NumOrdre] [int] NOT NULL, CONSTRAINT [PK_MISSION_TACHE] PRIMARY KEY CLUSTERED ( [NumTâche] ASC, [NumOrdre] ASC )WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY]
Dans mon programme j'insère d'abord dans ordre_mission, puis je récupère le dernier numéro d'ordre et ensuite je fais une insertion dans mission_tache.
Ma question est de savoir pourquoi ais-je ce problème qui arrive lors de l'insertion et est ce que si je faisais mon insertion dans mission tache à l'aide d'un trigger au lieu d'une fonction dans mon programme j'aurais le même problème ??
Et dans ma table mission_tache, est ce que c'est bon que ma clé primaire soit formé de mes deux clé étrangeres de mes deux autres tables ??
Tellement de question qui se pose car je n'arrive même plus a être sur de ce que je fais
d'avance merci de votre aide
@++
dubidon
Partager