Bonjour à tous et à toutes
Voici mon problème
Je souhaite effacer des données reliées entre elles par une contrainte type FK le plus efficacement possible...
J'ai 2 tables
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 CREATE TABLE [dbo].[Emplacement]( [IdEmplacement] [int] IDENTITY(1,1) NOT NULL, [IdReservation] [int] NULL, [IdParking] [int] NOT NULL, [Numero] [varchar](50) NOT NULL, [Occupied] [bit] NULL, [Prix] [float] NULL, CONSTRAINT [PK_Emplacement] PRIMARY KEY CLUSTERED ( [IdEmplacement] ASC )
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 CREATE TABLE [dbo].[Parking]( [IdParking] [int] IDENTITY(1,1) NOT NULL, [Etage] [int] NOT NULL, [ZoneTarifaire] [int] NOT NULL, [DescriptionParking] [varchar](250) NOT NULL, [Nom] [varchar](50) NOT NULL, [route] [varchar](50) NOT NULL, [postal_code] [varchar](50) NOT NULL, [locality] [varchar](50) NOT NULL, [administrative_area_level_1] [varchar](50) NOT NULL, [country] [varchar](50) NOT NULL, [street_number] [varchar](50) NOT NULL, CONSTRAINT [PK_Parking] PRIMARY KEY CLUSTERED ( [IdParking] ASC )
L'id de ma table parking est référencé dans la table emplacement.
J'aimerai lors de la suppression d'un parking supprimer ses références dans la table emplacement
Pour ce faire, j'utilise une SP
Je voudrais savoir si il y a un moyen disons plus professionnel d'y arriver.
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 alter PROCEDURE sp_Delete_Parking -- Add the parameters for the stored procedure here @id int AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; alter table [dbo].[Emplacement] NoCheck constraint [FK_Emplacement_Parking] delete from [dbo].[Parking] where [IdParking] = @id -- Insert statements for procedure here delete from [dbo].[Emplacement] where [IdParking] = @id alter table [dbo].[Emplacement] check constraint [FK_Emplacement_Parking] END GO
Je voudrais aussi une gestion d'erreur juste au cas où ????
Je pensais utiliser une transaction mais je ne suis pas sur de bien la programmer
Merci et bonne journée
Partager