Ya tengo una función en SQL Server 2005 como:alterar una función de servidor SQL para aceptar nuevo parámetro opcional
ALTER function [dbo].[fCalculateEstimateDate] (@vWorkOrderID numeric)
Returns varchar(100) AS
Begin
<Function Body>
End
Quiero modificar esta función para aceptar Además @ToDate parámetro opcional. Voy a agregar la lógica en la función si @Todate proporcionado luego hacer algo más continuar con el código existente.
he modificado la función como:
ALTER function [dbo].[fCalculateEstimateDate] (@vWorkOrderID numeric,@ToDate DateTime=null)
Returns varchar(100) AS
Begin
<Function Body>
End
Ahora puedo llamar a la función como:
SELECT dbo.fCalculateEstimateDate(647,GETDATE())
pero da error en llamada siguiente:
SELECT dbo.fCalculateEstimateDate(647)
como
Se ha proporcionado un número de argumentos insuficiente para el procedimiento o función dbo.fCalculateEstimateDate.
que según mi comprensión no debería suceder.
¿E-mail perdiendo cualquier cosa? Gracias de antemano.
¿Hay alguna manera de mantener SELECCIONADA la llamada a dbo.fCalculateEstimateDate (647)? – MaxRecursion
No. Cada llamada a la función debe tener el mismo número de parámetros especificados. Siempre puede crear una función * nueva * con dos parámetros y convertir 'dbo.fCalculateEstimateDate' en una función de envoltura que simplemente agrega el segundo parámetro para llamar a la nueva función. –
¿por qué en la tierra esto difiere de los procedimientos almacenados? Estoy bastante seguro de que puedes omitir el segundo parámetro y ¡simplemente funcionará! – Peter