Bonjour
J'ai fais une procédure stockée pour insérer des données dans ma base, et j'ai une erreur que je ne comprend pas et n'arrive pas à résoudre.
Must declare the scalar variable "@id". Voici mon code :
Merci d'avance pour votre aide
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54 CREATE PROCEDURE [dbo].[Insert_Langue] -- Add the parameters for the stored procedure here @id int = null, @lvl int = null, @name nvarchar (100)= null AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. declare @la_id int; select @la_id = la_id from LANGUE where la_name = @name; declare @Query nvarchar(MAX); declare @Query2 nvarchar(MAX); declare @Param nvarchar(MAX); BEGIN TRANSACTION SET NOCOUNT ON; set @Query =''; Set @Param = @Param + ',@id int ' Set @Param = @Param + ',@lvl int ' Set @Param = @Param + ',@name nvarchar(100) ' -- Insert into DB set @Query = 'INSERT INTO [dbo].[USER_LANGUE] '; set @Query = + @Query + '([id] ' ; set @Query2 = ' VALUES (@id'; if (@la_id <> NULL ) BEGIN set @Query = @Query + ',[la_id] '; set @Query2 =@Query2 + ', @la_id'; END if (@la_id <> NULL ) BEGIN set @Query = @Query + ',[lvl] '; set @Query2 =@Query2 + ', @lvl'; END set @Query = + @Query + ') ' + @Query2+ ')' IF (@Query <> '' ) begin EXECUTE sp_executesql @Query, @Param, @id = @id @la_id = @la_id, @lvl = @lvl end COMMIT TRANSACTION END
Dev
Partager