Tentei alterar um valor de parâmetro padrão com isto:
ALTER PROCEDURE [dbo].[my_sp]
@currentDate datetime = GETDATE()
e tudo o que o pré-compilador SQL me deu foi este erro:
Msg 102, nível 15, estado 1, procedimento my_sp, linha 8 Sintaxe incorreta próxima a '('.
Já criei o procedimento. (Não tenho certeza se isso é relevante.) Eu estava usando um valor padrão nulo e verificando isso mais tarde, mas isso não parece adequado. Posso fazer isso em uma linha?
Atualização: eu estava saindo da descrição dos parâmetros de procedimento armazenado do MSDN :
[= padrão] É um valor padrão para o parâmetro. Se um valor padrão for definido, a função pode ser executada sem especificar um valor para aquele parâmetro.
Nota: Os
valores de parâmetro padrão podem ser especificados para funções CLR, exceto para os tipos de dados varchar (max) e varbinary (max).Quando um parâmetro da função possui um valor padrão, a palavra-chave DEFAULT deve ser especificada quando a função é chamada para recuperar o valor padrão. Esse comportamento é diferente de usar parâmetros com valores padrão em procedimentos armazenados, nos quais omitir o parâmetro também implica no valor padrão.
Eu estou lendo errado?
Muito Obrigado.
fonte
Não acho que seja possível, você tem que usar um valor literal (constante) como padrão.
No entanto, você pode fazer isso:
fonte
Você pode tentar o seguinte:
fonte
Eu deduzo que você está usando o Microsoft SQL Server pelos colchetes em seu exemplo.
Do MSDN :
A função
GETDATE()
retorna um valor diferente de vez em quando, portanto, não é uma expressão constante.fonte
Esse valor não é determinístico e não pode ser usado
fonte
Sugestão:
Defina o padrão para
NULL
Faça o padrão
GETDATE()
no front end.fonte