Procédure stockée avec boîte de dialogue

Fermé
pulls Messages postés 136 Date d'inscription mercredi 30 décembre 2009 Statut Membre Dernière intervention 13 septembre 2023 - Modifié par pulls le 13/01/2017 à 09:52
jondev Messages postés 23 Date d'inscription mercredi 18 janvier 2017 Statut Membre Dernière intervention 31 janvier 2023 - 18 janv. 2017 à 21:04
Bonjour,
je suis débutant et je voudrais écrire une procédure dans sqlserver 2008, qui demande un paramètre au moment de l'exécution.

La PS doit demander le numéro de la course à supprimer et vérifier dans la table si la date de cette course correspond à la date du jour, avant de la supprimer.
Voici la procédure de suppression que j'ai créée:


CREATE PROCEDURE Sup_course
AS
DELETE
FROM [tbParis]
WHERE numcourse=5
GO


je voudrais que le numéro de la course soit une variable que l'utilisateur doit fournir à l’exécution; Ensuite vérifie si la date de la course(dateCourse), correspond à la date du jour.
S'il vous plait il s'agit de ma première procédure stockée.
Merci
A voir également:

1 réponse

jondev Messages postés 23 Date d'inscription mercredi 18 janvier 2017 Statut Membre Dernière intervention 31 janvier 2023 9
18 janv. 2017 à 21:04
Bonjour pulls,

Je pars du principe que dans votre table "tbParis" vous disposez des champs "numcourse" de type "int" et du champ "dateCourse" de type "Date".

Afin de pouvoir définir le numéro de la course lors de l'appel de la procédure stockée, il faut lui ajouter la variable dans la déclaration de celle-ci.

La déclaration s'effectue via la syntaxe suivante :
CREATE PROCEDURE Sup_course (@NumCourse int)

Afin que la procédure exécute les tâches que vous souhaitez, celle-ci doit effectuer les tâches suivantes :
1 - Vérification de la présence de la course sur le jour actuel par une condition si (IF) :
if((SELECT COUNT(*) FROM dbo.tbParis WHERE numcourse=@NumCourse AND dateCourse=CONVERT(date,getdate())) = 1)

2 - Si celle-ci est présente, la supprimer :
DELETE FROM dbo.tbParis WHERE numcourse=@NumCourse AND dateCourse=CONVERT(date,getdate())

CONVERT(date,getdate()) permet de récupérer uniquement la date du jour sous la forme "aaaa-mm-jj"

Voici la procédure stockée finale :
CREATE PROCEDURE Sup_course (@NumCourse int)
AS

DECLARE @Date_Jour date = CONVERT(date,getdate())

if((SELECT COUNT(*) FROM dbo.tbParis WHERE numcourse=@NumCourse AND dateCourse=@Date_Jour) = 1)
BEGIN
DELETE FROM dbo.tbParis WHERE numcourse=@NumCourse AND dateCourse=@Date_Jour
END

GO


L'appel de la procédure stockée est la suivante :
EXECUTE [dbo].[Sup_course] NumeroCourse


En espérant avoir pu vous aider.

Bonne continuation pour votre développement.

Pensez à mettre le sujet en résolu si c'est le cas.

JonDev

--

À chaque problème sa solution
0