100 votes

Fonction SQL comme valeur de paramètre par défaut?

J'ai essayé de modifier une valeur de paramètre par défaut avec ceci :

ALTER PROCEDURE [dbo].[my_sp]
@currentDate datetime = GETDATE()

et tout ce que le pré-compilateur SQL m'a donné était cette erreur :

Msg 102, Niveau 15, État 1, Procédure my_sp, Ligne 8 Syntaxe incorrecte près de '('.

J'ai déjà créé la procédure. (Je ne suis pas sûr que cela soit pertinent.) J'utilisais une valeur par défaut nulle et vérifiais cela plus tard, mais cela ne semble pas approprié. Puis-je faire cela en une seule ligne ?


Mise à jour : Je me basais sur la description de MSDN des paramètres de procédure stockée : lien

[ = default ] Est une valeur par défaut pour le paramètre. Si une valeur par défaut est définie, la fonction peut être exécutée sans spécifier une valeur pour ce paramètre.

Note:
Les valeurs par défaut des paramètres peuvent être spécifiées pour les fonctions CLR sauf pour les types de données varchar(max) et varbinary(max).

Lorsqu'un paramètre de la fonction a une valeur par défaut, le mot-clé DEFAULT doit être spécifié lorsque la fonction est appelée pour récupérer la valeur par défaut. Ce comportement est différent de l'utilisation de paramètres avec des valeurs par défaut dans les procédures stockées où l'omission du paramètre implique également la valeur par défaut.

Est-ce que je lis mal ?

Merci beaucoup.

1voto

MarlonRibunal Points 1732

Suggestion :

Définir par défaut à NULL

Faites le GETDATE() par défaut dans le frontend.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X