Bonjour tout le monde,

Une petite question , je commence avec les procédures stockées et j'ai une erreur que je n'arrive pas à résoudre.Je précise que cette procédure n'est qu'une procédure de test afin de comprendre comment ca marche..

Voici ma procédure stockée

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
CREATE PROCEDURE UPDATE_INVENTAIRE
(
@CLIENTREF VARCHAR(20), 
@LIEUREF TINYINT, 
@ARTICLEREF VARCHAR(20), 
@CATEGORIEREF TINYINT, 
@DATEREF DATETIME, 
@QTEREF TINYINT, 
@TECHUPDATE SMALLINT, 
@DATEUPDATE DATETIME, 
@QTEUPDATE TINYINT, 
@NUMSERIEUPDATE VARCHAR(500)
)
AS 
 
BEGIN TRANSACTION UPDATE_INVENTAIRE
 
UPDATE Inventaire$Inventaire 
SET actif='0' 
WHERE ClientID=@CLIENTREF AND LieuID=@LIEUREF AND ArticleID=@ARTICLEREF AND [date]=@DATEREF AND quantite=@QTEREF
 
IF @@ERROR <> 0
	BEGIN
	ROLLBACK TRANSACTION UPDATE_INVENTAIRE
	PRINT 'ERREUR'
	END
ELSE
	BEGIN
	INSERT INTO Inventaire$Inventaire 
	VALUES (@CLIENTREF,@LIEUREF,@TECHUPDATE,@ARTICLEREF,@CATEGORIEREF,@DATEUPDATE,@QTEUPDATE,@NUMSERIEUPDATE,'1')
	COMMIT TRANSACTION UPDATE_INVENTAIRE
	PRINT 'OK'
	END
GO

Dans l'analyseur de requêtes je veux faire un test de cette procédure en faisant :

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
DECLARE @CLIENTREF VARCHAR(20) 
DECLARE @LIEUREF TINYINT 
DECLARE @ARTICLEREF VARCHAR(20) 
DECLARE @CATEGORIEREF TINYINT 
DECLARE @DATEREF DATETIME 
DECLARE @QTEREF TINYINT
DECLARE @TECHUPDATE SMALLINT 
DECLARE @DATEUPDATE DATETIME
DECLARE @QTEUPDATE TINYINT
DECLARE @NUMSERIEUPDATE VARCHAR(500)
 
 
SET @CLIENTREF='80105'
SET @LIEUREF='2'
SET @ARTICLEREF='MN6280'
SET @DATEREF= '20061204 14:00:00'
SET @QTEREF='4'
SET @TECHUPDATE='4844'
SET @DATEUPDATE= '04/12/2006 13:00:00'
SET @QTEUPDATE='10'
SET @NUMSERIEUPDATE=''
SET @DATEREF= CONVERT(DATETIME, @DATEREF, 104)
SET @DATEUPDATE= CONVERT(DATETIME, @DATEUPDATE, 104)
 
EXEC UPDATE_INVENTAIRE @CLIENTREF,@LIEUREF,@ARTICLEREF,@DATEREF,@QTEREF,@TECHUPDATE,@DATEUPDATE,@QTEUPDATE,@NUMSERIEUPDATE
Et j'ai l'erreur suivante :

Se
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
rver: Msg 257, Level 16, State 2, Procedure UPDATE_INVENTAIRE, Line 0
Implicit conversion from data type datetime to tinyint is not allowed. Use the CONVERT function to run this query.
Je n'arrive pas à résoudre ce problème
Merci pour vos réponses