Salut à tous,

Voilà j'ai créé la fonction table suivante :
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
CREATE FUNCTION Programmation_Emailing (@DateLow AS DATETIME, @DateHigh AS DATETIME)
RETURNS @Table_Envoi_Emailing TABLE (EmailProspect VARCHAR(80), FichierHTML VARCHAR(200), DateEnvoi DATETIME)
AS
 
BEGIN
	DECLARE @EmailProspectTemp TABLE (EmailTemp VARCHAR(80), HTMLTemp VARCHAR(200), EnvoiTemp DATETIME)
 
IF (@DateHigh IS NULL)
	SET @DateHigh = (@DateLow)
 
IF (@DateLow IS NULL)
	SET @DateLow = (@DateHigh)
 
IF (@DateLow = @DateHigh)
	SET @DateHigh = (@DateHigh + 1)
 
INSERT INTO @EmailProspectTemp SELECT EmailProspect, FichierHTML, DateEnvoi
From Prospects P, Newsletters N, Abonnements A, Souscrire SOU
WHERE N.CodeAbonnement = A.CodeAbonnement
AND A.CodeAbonnement = SOU.CodeAbonnement
AND SOU.NumProspect = P.NumProspect
AND DateEnvoi > DateInscription
AND ((DateEnvoi < DateDesinscription) OR (DateDesinscription IS NULL))
AND DateEnvoi BETWEEN @DateLow AND @DateHigh
 
INSERT INTO @Table_Envoi_Emailing
SELECT DISTINCT EmailTemp, HTMLTemp, EnvoiTemp FROM @EmailProspectTemp
RETURN
END
Quand je l'avais créé je l'avais testé, et elle marchait très bien.

Par contre entretemps j'ai oublié quelle était la requête pour appeller cette fonction. Normalement ça devrait être tout bêtement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
SELECT [dbo.Programmation_Emailing]('31/12/2007', '15/03/2008')
Mais ça ne marche pas. Ça me dit "Syntaxe incorrecte vers 31/12/2007."
[dbo].[Programmation_Emailing] ne marche pas mieux. Il croit alors que dbo est un nom de colonne...

Merci pour votre aide.