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
| CREATE PROCEDURE dbo.usp_COMPTEUR_ENTREE_get
@COMPTEUR int OUTPUT
, @COMPTEUR_ENTREE int OUTPUT
AS
BEGIN
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
DECLARE @ANNEE smallint
, @MOIS tinyint
SELECT @COMPTEUR_ENTREE = COMPTEUR_ENTREE
, @ANNEE = ANNEE
, @MOIS = MOIS
FROM dbo.COMPTEUR_ENTREE
WHERE ANNEE = DATEPART(year, GETDATE())
AND MOIS = DATEPART(month, GETDATE())
-- Si le mois et/ou l'année n'existent pas, on les ajoute
IF
(
@ANNEE IS NULL
OR @MOIS IS NULL
)
BEGIN
INSERT INTO dbo.COMPTEUR_ENTREE
(
ANNEE
, MOIS
, COMPTEUR
)
SELECT DATEPART(year, GETDATE())
, DATEPART(month, GETDATE())
, 1
SELECT @COMPTEUR = 1
, @COMPTEUR_ENTREE = SCOPE_IDENTITY()
END
ELSE
BEGIN
-- Si cela existe, on ne fait qu'incrémenter le compteur
UPDATE dbo.COMPTEUR_ENTREE
SET @COMPTEUR = COMPTEUR = COMPTEUR + 1
WHERE ANNEE = @ANNEE
AND MOIS = @MOIS
END
END
GO |
Partager