Bonjour,
voilà mon problème, je n'arrive pas a donner une valeur à une varriable.

que je fasse:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
select @idobj=id from documents where titre=@titredoc
ou:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
set @idobj=(select id from documents where titre=@titredoc)
Celà me dit: impossible d'inserer valeur null, celà parce que je l'ai interdit,mais ça ne devrait pas etre null!

Voilà ma proc en entier .
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
ALTER PROCEDURE proc_enregistreemprunt
(
@titredoc nvarchar,
@nomemp nvarchar,
@prenomemp nvarchar,
@dateemprunt datetime
)
 
AS
declare @idemp int
declare @idobj int
set @idemp=(select id from  emprunteur where nom=@nomemp and prénom=@prenomemp)
set @idobj=(select id from documents where titre=@titredoc)
declare @etat bit
declare @return as int;
set @Etat = (SELECT TOP 1 Rendu FROM Emprunt WHERE IdDocument=@idobj ORDER BY dateemprunt Desc)
if @Etat = 1 or @Etat is null	/* s'il y a pas de ligne ou que l'objet est rendu */
Begin
insert into emprunt
(idDocument,Idemprunteur,dateemprunt)
values (
	@idobj,
	@idemp,
	@dateemprunt /* Current_TimeStamp, */
	 /* Val à 0*/
	)
set @return=@@identity	/* Retourne le numéro de la nouvelle ligne */
end
 
else 
begin
set @return = 0
end
RETURN @return