1 pièce(s) jointe(s)
Insertion multilignes et incrémentation relative des clefs
J'ai consulté l'article ci-dessous de SQLpro.
https://blog.developpez.com/sqlpro/p...gnes_a_increma
qui se rapproche de mon mon problème.
J'ai trois tables.
La table LABO
Code:
1 2 3 4 5 6 7 8 9 10 11
| CREATE TABLE [dbo].[LABO](
[IDLABO] [int] IDENTITY(1,1) NOT NULL,
[LABO_CODE] [char](3) NULL,
[LABO_NAME] [nvarchar](50) NULL,
CONSTRAINT [PK_LABO] PRIMARY KEY CLUSTERED
(
[IDLABO] 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 |
Code:
1 2 3 4
|
INSERT INTO [dbo].[LABO] ([LABO_CODE],[LABO_NAME])
VALUES ('LKS' ,'LIKASI'),('KLZ' ,'KOLWEZI'),('LHI' ,'LUBUMBASHI') |
La table RECEPTION
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| CREATE TABLE [dbo].[RECEPTION](
[ID] [int] IDENTITY(1,1) NOT NULL,
[DATE_REC] [datetime] NOT NULL,
[IDLABO] [int] NULL,
CONSTRAINT [PK_RECEPTION] PRIMARY KEY CLUSTERED
(
[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].[RECEPTION] WITH CHECK ADD CONSTRAINT [FK_RECEPTION_LABO] FOREIGN KEY([IDLABO])
REFERENCES [dbo].[LABO] ([IDLABO])
GO
ALTER TABLE [dbo].[RECEPTION] CHECK CONSTRAINT [FK_RECEPTION_LABO]
GO |
et la table échantillon
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| CREATE TABLE [dbo].[ECHANTILLON](
[ID] [int] IDENTITY(1,1) NOT NULL,
[IDRECEPTION] [int] NULL,
[NUMLABO] [nvarchar](50) NULL,
[POIDS_ECHANTILLON] [float] NULL,
CONSTRAINT [PK_EHCANTILLON] PRIMARY KEY CLUSTERED
(
[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].[ECHANTILLON] WITH CHECK ADD CONSTRAINT [FK_ECHANTILLON_RECEPTION] FOREIGN KEY([IDRECEPTION])
REFERENCES [dbo].[RECEPTION] ([ID])
GO
ALTER TABLE [dbo].[ECHANTILLON] CHECK CONSTRAINT [FK_ECHANTILLON_RECEPTION]
GO |
Je souhaite attribuer des numéros (NUMLABO) formatés à chaque échantillon inséré avec un formulaire (master [RECEPTION]-détails [ECHANTILLON]) sachant que:
1. le format des numéros est LKS-2017000001 (LKS-2017000001 sera le premier échantillon de l'année 2017 pour le labo dont le code est LKS avec le -)
2. La rupture s'effectue sur le code labo et l'année (KLZ-2017000001 sera la premier du labo KLZ pour 2017 et LKZ-2018000001 pour 2018)
3.L'année à considérer dans le numéro vient du CHAMPS [DATE_REC] de la table RECEPTION.
D'avance merci.