Débutant en T-SQL, je ne comprend pas d'où vient l'erreur qui m'est renvoyé !

Les erreurs : (toujours la même...)
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
Msg*102, Niveau*15, État*1, Procédure*calcul_delai, Ligne*24
Syntaxe incorrecte vers ','.
Msg*102, Niveau*15, État*1, Procédure*calcul_delai, Ligne*27
Syntaxe incorrecte vers ','.
Msg*102, Niveau*15, État*1, Procédure*calcul_delai, Ligne*29
Syntaxe incorrecte vers ','.
Msg*102, Niveau*15, État*1, Procédure*calcul_delai, Ligne*36
Syntaxe incorrecte vers ','.
Msg*102, Niveau*15, État*1, Procédure*calcul_delai, Ligne*37
Syntaxe incorrecte vers '>'.
Msg*102, Niveau*15, État*1, Procédure*calcul_delai, Ligne*40
Syntaxe incorrecte vers ','.
Msg*102, Niveau*15, État*1, Procédure*calcul_delai, Ligne*46
Syntaxe incorrecte vers ','.
Msg*102, Niveau*15, État*1, Procédure*calcul_delai, Ligne*51
Syntaxe incorrecte vers ','.
Msg*102, Niveau*15, État*1, Procédure*calcul_delai, Ligne*52
Syntaxe incorrecte vers ','.
Msg*102, Niveau*15, État*1, Procédure*calcul_delai, Ligne*55
Syntaxe incorrecte vers ','.
Msg*102, Niveau*15, État*1, Procédure*calcul_delai, Ligne*61
Syntaxe incorrecte vers ','.
Msg*102, Niveau*15, État*1, Procédure*calcul_delai, Ligne*67
Syntaxe incorrecte vers ','.
Msg*102, Niveau*15, État*1, Procédure*calcul_delai, Ligne*72
Syntaxe incorrecte vers ','.
Msg*102, Niveau*15, État*1, Procédure*calcul_delai, Ligne*73
Syntaxe incorrecte vers ','.

Le code :
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
USE [GDAC]
GO
 
CREATE FUNCTION calcul_delai(@DHDebut DateTime,	@Delai Int)
	RETURNS DateTime
AS
BEGIN
	-- Declare the return variable here
	DECLARE @DateFin DateTime
	SET @DateFin = @DHDebut
 
	DECLARE @HeureDebut TINYINT
	SET @HeureDebut = DATEPART(hour, @DHDebut)
 
	DECLARE @JourSuiv BIT
 
    -- Fonction
		-- Placement de l'horaire dans la journée
		SET @DateFin =
		CASE
			WHEN @HeureDebut < 9 THEN DATEADD(hour, -@HeureDebut+9, @DateFin)
			WHEN @HeureDebut > 12 AND @HeureDebut < 14 THEN DATEADD(hour, -@HeureDebut+14, @DateFin)
		END
		IF @HeureDebut > 18 
		BEGIN
			SET DATEADD(hour, -@HeureDebut+9, @DateFin)
			WHILE dbo.jour_suivant(@DateFin) = 0
			BEGIN
				SET DATEADD(day, DATEPART(day,@DHDebut)+1, @DateFin);
			END
			SET DATEADD(day, DATEPART(day,@DHDebut)+1, @DateFin);
		END
 
	-- Calcul de la première journée si même jour que la demande
		IF DATEPART(hour, @DateFin) >= 9 AND DATEPART(hour, @DateFin) <= 12
			BEGIN
				SET @Delai = @Delai - (12 - DATEPART(hour,@DateFin))
				SET DATEADD(hour, -DATEPART(hour,@DateFin)+12, @DateFin)
				IF @Delai != 0 & @Delai >= 4
					BEGIN
						SET @Delai = @Delai - (18 - DATEPART(hour,@DateFin))
						SET DATEADD(hour, -DATEPART(hour,@DateFin)+18, @DateFin)
					END
			END	
		ELSE IF DATEPART(hour, @DateFin) >= 14 AND DATEPART(hour, @DateFin) <= 19
			BEGIN
				SET @Delai = (@Delai - (18 - DATEPART(hour,@DateFin)))
				SET DATEADD(hour, -DATEPART(hour,@DateFin)+18, @DateFin)
			END
 
		WHILE @Delai != 0
			IF dbo.jour_suivant(@DateFin) = 1
				SET DATEADD(day, DATEPART(day,@DateFin)+1, @DateFin)
				SET DATEADD(hour, -DATEPART(hour,@DateFin)+9, @DateFin)
				IF @Delai <= 3
					BEGIN
						SET DATEADD(hour, @Delai, @DateFin)
						SET @Delai = 0;
						BREAK
					END
				ELSE IF @Delai <= 7
					BEGIN
						SET DATEADD(hour, @Delai + 2, @DateFin) -- @Delai+2 pour la pause du midi
						SET @Delai = 0;
						BREAK
					END
				ELSE IF @Delai > 7
					BEGIN
						SET DATEADD(hour, 9, @DateFin) -- 7h + 2h de pause
						SET @Delai = @Delai - 7
					END
			ELSE IF dbo.jour_suivant(@DateFin) = 0
				BEGIN
					SET DATEADD(day, DATEPART(day,@DateFin)+1, @DateFin)
					SET DATEADD(hour, -DATEPART(hour,@DateFin)+9, @DateFin)
				END
	-- Return the result of the function
	RETURN @DateFin
 
END
GO

MERCI !