Bonjour,

Je rencontre actuellement un petit problème avec l'insertion à "NULL" d'une clef étrangère.

Ma procedure stocké

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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
 
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<>
-- Create date: <18/08/2008>
-- Description:	<Insertion d'une nouvelle demande partie demandeur>
-- =============================================
ALTER PROCEDURE [dbo].[DEV_PS_Insert_DEMANDEUR]
	-- Add the parameters for the stored procedure here
@id_fournisseur int,
@id_donnee int,
@id_type_bon int,
@id_etape int,
@date_demandeur datetime,
@codeR3 varchar(30),
@nombre int,
@nombre_pieces_urgentes int,
@numBB varchar(20),
@teinte varchar(20),
@reference varchar(20),
@delais varchar(20),
@designation_complete varchar(20),
@observation varchar(500),
@tache int,
@precision_TACHE varchar(50),
@id_UTILISATEUR varchar(50)
 
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
 
    -- Insert statements for procedure here
INSERT INTO DEV_BON_PEINTURE
(
id_fournisseur,
id_donnee,
id_type_bon,
id_etape,
date_demandeur,
codeR3,
nombre,
nombre_pieces_urgentes,
numBB,
teinte,
reference,
delais,
designation_complete,
observation_demandeur,
tache,
precision_TACHE,
id_DEMANDEUR
)
Values
(
@id_fournisseur,
@id_donnee,
@id_type_bon,
@id_etape,
@date_demandeur,
@codeR3,
@nombre,
@nombre_pieces_urgentes,
@numBB,
@teinte,
@reference,
@delais,
@designation_complete,
@observation,
@tache,
@precision_TACHE,
@id_UTILISATEUR
)
 
SELECT SCOPE_IDENTITY() AS [SCOPE_IDENTITY]
 
END
Dans certains cas @id_donnee peut être vide, pas de caractère saisie.

Lorsque j'exécute la requète en laissant à vide le champs j'obtiens l'erreur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
Msg*201, Niveau*16, État*4, Procédure*DEV_PS_Insert_DEMANDEUR, Ligne*0
La procédure ou fonction 'DEV_PS_Insert_DEMANDEUR' attend le paramètre '@id_donnee', qui n'a pas été fourni.
@id_donnee est de plus une cle etrangere.

J'ai essayé de définir à NULL le champs général "valeur ou liaison par défaut" sans succès.

J'utilise actuellement une bidouille pour contourner le problème en envoyant une valeur "N/A" lors de l'insertion d'un champs vide mais je voulais savoir si il existait une méthodologie plus approprié.

En vous remerciant d'avance pour vos idées cordialement.