Erreur: Msg 137 .. Must declare the scalar variable "@ldDateDu".
Le
EmanuelL
Bonjour à Touis,
L'exécution des codes cidessous me donnent l'erreur :
"Msg 137, Niveau 15, État 2, Ligne 17
Must declare the scalar variable "@ldDateDu"."
Avez-vous une idée?
Merci d'avance. :'(
USE [FiducDB1];
GO
IF OBJECT_ID ( 'dbo.usp_CreateMinoMajo', 'P' ) IS NOT NULL
DROP PROCEDURE dbo.usp_CreateMinoMajo;
GO
CREATE PROCEDURE dbo.usp_CreateMinoMajo
-- '2008-01-01' AND '2008-12-31'
@ldDateDu datetime,
@ldDateAu datetime
AS
Suppression de la table temporaire
IF OBJECT_ID(N'tempdb..#tmp_MinMaj', N'U') IS NOT NULL
DROP TABLE #tmp_MinMaj ;
GO
Extraction de mino&majo et création de la table temporaire
#tmp_MinMaj
SELECT
FP.[FAK_NR] AS No_Facture
,PJ.[FIRMA_NR] AS No_Ste
,FP.[PROJEKT_NR] AS No_Client
,PJ.[BEZEICHNUNG] AS Nom_Client
,CASE WHEN FP.[BETRAGNETTO] < 0 THEN FP.[BETRAGNETTO] ELSE 0 END AS
Mino
,CASE WHEN FP.[BETRAGNETTO] > 0 THEN FP.[BETRAGNETTO] ELSE 0 END AS
Majo
,CONVERT(VARCHAR(11), FK.[FAKDATUM], 103) AS Date_Facture
,CONVERT(VARCHAR(11), FK.[ABRDATUM], 103) AS Date_Rapport
INTO #tmp_MinMaj
FROM [Hono1].[dbo].[FAKPOS] AS FP
JOIN [Hono1].[dbo].[FAKKOPF] AS FK
ON FK.[FAK_NR] = FP.[FAK_NR]
AND FK.[FAKDATUM] BETWEEN @ldDateDu AND @ldDateAu
JOIN [Hono1].[dbo].[PROJEKT] AS PJ
ON PJ.[PROJEKT_NR] = FP.[PROJEKT_NR]
WHERE FP.[POSTYP_SCNR] = 9
AND FP.[CODE_NR] = 9;
GO
--
*!* --
EmanuelL
Membre d'AtoutFox
www.atoutfox.org
L'exécution des codes cidessous me donnent l'erreur :
"Msg 137, Niveau 15, État 2, Ligne 17
Must declare the scalar variable "@ldDateDu"."
Avez-vous une idée?
Merci d'avance. :'(
USE [FiducDB1];
GO
IF OBJECT_ID ( 'dbo.usp_CreateMinoMajo', 'P' ) IS NOT NULL
DROP PROCEDURE dbo.usp_CreateMinoMajo;
GO
CREATE PROCEDURE dbo.usp_CreateMinoMajo
-- '2008-01-01' AND '2008-12-31'
@ldDateDu datetime,
@ldDateAu datetime
AS
Suppression de la table temporaire
IF OBJECT_ID(N'tempdb..#tmp_MinMaj', N'U') IS NOT NULL
DROP TABLE #tmp_MinMaj ;
GO
Extraction de mino&majo et création de la table temporaire
#tmp_MinMaj
SELECT
FP.[FAK_NR] AS No_Facture
,PJ.[FIRMA_NR] AS No_Ste
,FP.[PROJEKT_NR] AS No_Client
,PJ.[BEZEICHNUNG] AS Nom_Client
,CASE WHEN FP.[BETRAGNETTO] < 0 THEN FP.[BETRAGNETTO] ELSE 0 END AS
Mino
,CASE WHEN FP.[BETRAGNETTO] > 0 THEN FP.[BETRAGNETTO] ELSE 0 END AS
Majo
,CONVERT(VARCHAR(11), FK.[FAKDATUM], 103) AS Date_Facture
,CONVERT(VARCHAR(11), FK.[ABRDATUM], 103) AS Date_Rapport
INTO #tmp_MinMaj
FROM [Hono1].[dbo].[FAKPOS] AS FP
JOIN [Hono1].[dbo].[FAKKOPF] AS FK
ON FK.[FAK_NR] = FP.[FAK_NR]
AND FK.[FAKDATUM] BETWEEN @ldDateDu AND @ldDateAu
JOIN [Hono1].[dbo].[PROJEKT] AS PJ
ON PJ.[PROJEKT_NR] = FP.[PROJEKT_NR]
WHERE FP.[POSTYP_SCNR] = 9
AND FP.[CODE_NR] = 9;
GO
--
*!* --
EmanuelL
Membre d'AtoutFox
www.atoutfox.org

Poser une question


un petit Declare de tes variables, peut-être ;-) parceque pour le moment ce
ne sont que des paramètres
--
Michel Lévy
--
"EmanuelL" news:
Content de te voir ici!
En mettant declare,
CREATE PROCEDURE dbo.usp_CreateMinoMajo
-- '2008-01-01' AND '2008-12-31'
DECLARE @ldDateDu datetime
DECLARE @ldDateAu datetime
AS
J'ai l'erreur :
"Msg 156, Niveau 15, État 1, Procédure usp_CreateMinoMajo, Ligne 3
Incorrect syntax near the keyword 'DECLARE'."
;-)
Michel LEVY vient de nous annoncer :
--
*!* -----------------------------------
EmanuelL
Membre d'AtoutFox
www.atoutfox.org
Bonjour,
Sur quels exemples te bases-tu pour mettre DECLARE avant AS BEGIN ?
"Incorrect syntax" signifie syntaxe incorrecte, donc la bonne idée est
de chercher la syntaxe correcte, non ?
L'aide en ligne n'est pas très loquace là-dessus, mais avec un moteur de
recherche on trouve quelques exemples de créations de procédures TSQL ,
par exemple en cherchant DECLARE datetime.
Par exemple :
http://www.mssqlcity.com/Articles/U...imeUDF.htm
Avant AS BEGIN, ce sont les paramètres, donc le mot-clef DECLARE n'a pa s
sa place.
C'est après que j'ai compris qu'on ne pouvais pas mettre DECLARE dans
CREATE PROC MaProc @Param1 type1, @Param2 type2.
Helas, on apprends tout le jour. ;-)
Merci tout de même de confirmer mon erreur.
A+
--
*!* -----------------------------------
EmanuelL
Membre d'AtoutFox
www.atoutfox.org
clôt le lot d'instruction en cours et la deuxième partie ne fait donc pas
partie de la procédure et tout ce qui a été déclaré précédemment n'y est pas
connu...
--
Patrice
"EmanuelL" groupe de discussion :