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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Michel LEVY
Le #19333211
Bonjour Emanuel,

un petit Declare de tes variables, peut-être ;-) parceque pour le moment ce
ne sont que des paramètres

--
Michel Lévy
--
"EmanuelL" news:
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




EmanuelL
Le #19333331
Salut Michel,

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 :
Bonjour Emanuel,

un petit Declare de tes variables, peut-être ;-) parceque pour le moment ce
ne sont que des paramètres

--
Michel Lévy
--
"EmanuelL" news:
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







--

*!* -----------------------------------
EmanuelL
Membre d'AtoutFox
www.atoutfox.org
Gloops
Le #19339521
EmanuelL a écrit, le 14/05/2009 15:19 :
Salut Michel,

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'."





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/UDF/DateTimeUDF.htm

Avant AS BEGIN, ce sont les paramètres, donc le mot-clef DECLARE n'a pa s
sa place.
EmanuelL
Le #19339731
Bonjour Gloops,

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+

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/UDF/DateTimeUDF.htm

Avant AS BEGIN, ce sont les paramètres, donc le mot-clef DECLARE n'a pas sa
place.



--

*!* -----------------------------------
EmanuelL
Membre d'AtoutFox
www.atoutfox.org
Patrice
Le #19340231
Le problème semblerait résolu mais bizarremment le GO n'est pas évoqué. GO
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 :
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




EmanuelL
Le #19346381
Eh ben, on en prend tout le jour. Merci Patrice de cette information
précieuse pour moi.

A+ ;-)


Patrice a couché sur son écran :
Le problème semblerait résolu mais bizarremment le GO n'est pas évoqué. GO
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" de discussion :
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







--

*!* -----------------------------------
EmanuelL
Membre d'AtoutFox
www.atoutfox.org
Gloops
Le #19346941
EmanuelL a écrit, le 15/05/2009 12:01 :
Helas, on apprends tout le jour. ;-)



Et tous les jours, aussi, paraît-il ;)


Et peut-être tant mieux, non ?
WOLO Laurent
Le #19565931
Etes vous sûr que la remarque et @ldDateDu sont sur deux lignes différentes.
"EmanuelL" news:
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




Publicité
Poster une réponse
Anonyme