Meilleur auteur de réponses
Insérer la date courante par procédure stockée SQL SERVER 2012

Question
-
Bonjour à tous,
J'ai crée une procédure stockée(avec paramètres par défaut) par laquelle, [B]je voudrais insérer [/B]et sélectionner l'heure courante. Voici le code de création de la procédure:
ALTER PROCEDURE [dbo].[PS_CONTRAT] --LES PARAMETRES D ENTREES @NumeroOrdre INT=0, @IDPROPRIETAIRE INT=10, @IDAPPARTEMENT INT=1002, @IDCONTRAT INT=100, @TYPECONTRAT varchar(20)='Location', @DATECONTRAT DATETIME=NOW AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; IF @NumeroOrdre=0 BEGIN SELECT TOP 5 * FROM CONTRAT END ELSE IF @NumeroOrdre=1 BEGIN INSERT INTO CONTRAT(IDPROPRIETAIRE,IDAPPARTEMENT,IDCONTRAT,TYPECONTRAT,DATECONTRAT) VALUES (@IDPROPRIETAIRE,@IDAPPARTEMENT,@IDCONTRAT,@TYPECONTRAT,@DATECONTRAT) END
Le problème est qu'à l’exécution le passage des paramètres est toujours avec heurts.
Voici mon code d’exécution de la procédure:EXEC PS_CONTRAT @NumeroOrdre =1, @IDPROPRIETAIRE =10, @IDAPPARTEMENT=1005, @IDCONTRAT=100, @TYPECONTRAT ='Location', @DATECONTRAT =GETDATE()
OU ENCORE
:[CODE]EXEC PS_CONTRAT @NumeroOrdre =1, @IDPROPRIETAIRE =10, @IDAPPARTEMENT=1005, @IDCONTRAT=100, @TYPECONTRAT ='Location', @DATECONTRAT =NOW [/CODE]
aucune des 2 exécutions ne marchent.
Où ai je fais l'erreur? Merci de m'aider.
Réponses
-
Bonjour
Utiliser getdate() directement comme paramètre pour votre fonction ne vas fonctionner.
Vous devez ajouter avant appeler votre fonction une variable intermédiaire qui vas prendre la valeur getdate () et utiliser cette variable comme paramètre.
Cordialement.
- Marqué comme réponse Aurel BeraModerator jeudi 11 juillet 2013 08:34
-
Bonjour
Vous devez définir une variable DateTime et le passer comme paramètre :
declare @data datetime
select @data = getdate ()
exec proc .... @DATECONTRAT = @dataCordialement,
- Marqué comme réponse Aurel BeraModerator jeudi 11 juillet 2013 08:34
Toutes les réponses
-
Bonjour
Vous devez définir une variable DateTime et le passer comme paramètre :
declare @data datetime
select @data = getdate ()
exec proc .... @DATECONTRAT = @dataCordialement,
- Marqué comme réponse Aurel BeraModerator jeudi 11 juillet 2013 08:34
-
Bonsoir,
J'ai déjà essayé cette solution, et là getdate() est souligné de rouge. Je rappelle que la colonne IDCONTRAT de la table recueillant la valeur de la variable @IDCONTRAT est une colonne en Auto-incrément. La preuve en image jointe.
mon problème demeure.
-
Bonjour
Utiliser getdate() directement comme paramètre pour votre fonction ne vas fonctionner.
Vous devez ajouter avant appeler votre fonction une variable intermédiaire qui vas prendre la valeur getdate () et utiliser cette variable comme paramètre.
Cordialement.
- Marqué comme réponse Aurel BeraModerator jeudi 11 juillet 2013 08:34