J'ai essayé de changer 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 sais pas si cela est pertinent.) J'utilisais une valeur par défaut nulle et je la vérifiais plus tard, mais cela ne semble pas approprié. Puis-je faire cela en une seule ligne?
Mise à jour: je sortais de la description de MSDN des paramètres de procédure stockée :
[= valeur par défaut] 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 de valeur pour ce paramètre.
Remarque:
Les valeurs de paramètre par défaut peuvent être spécifiées pour les fonctions CLR, à l'exception des 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 des procédures stockées dans lesquelles l'omission du paramètre implique également la valeur par défaut.
Est-ce que je lis mal?
Merci beaucoup.
la source
Je ne pense pas que ce soit possible, vous devez utiliser une valeur littérale (constante) par défaut.
Cependant, vous pouvez le faire:
la source
Vous pouvez essayer comme suit:
la source
J'en déduis que vous utilisez Microsoft SQL Server à partir des crochets dans votre exemple.
Depuis MSDN :
La fonction
GETDATE()
renvoie une valeur différente de temps en temps, ce n'est donc pas une expression constante.la source
Cette valeur n'est pas déterministe et ne peut pas être utilisée
la source
Suggestion:
Définissez la valeur par défaut sur
NULL
Faites la valeur par défaut
GETDATE()
dans le front-end.la source