[SQLSERVER]Problème de procédure stockée
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:
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:
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:
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 :)