gpt4 book ai didi

sql - 更改 SQL Server 函数以接受新的可选参数

转载 作者:行者123 更新时间:2023-12-03 05:40:30 25 4
gpt4 key购买 nike

我在 SQL Server 2005 中已经有一个函数:

ALTER function [dbo].[fCalculateEstimateDate] (@vWorkOrderID numeric)
Returns varchar(100) AS
Begin
<Function Body>
End

我想修改此函数以接受附加可选参数@ToDate。如果提供 @Todate,我将在函数中添加逻辑,然后继续使用现有代码执行其他操作。

我将函数修改为:

ALTER function [dbo].[fCalculateEstimateDate] (@vWorkOrderID numeric,@ToDate DateTime=null)
Returns varchar(100) AS
Begin
<Function Body>
End

现在我可以将函数调用为:

SELECT dbo.fCalculateEstimateDate(647,GETDATE())

但在以下调用中出现错误:

SELECT dbo.fCalculateEstimateDate(647)

作为

An insufficient number of arguments were supplied for the procedure orfunction dbo.fCalculateEstimateDate.

根据我的理解,这不应该发生。

我错过了什么吗?

最佳答案

来自CREATE FUNCTION :

When a parameter of the function has a default value, the keyword DEFAULT must be specified when the function is called to retrieve the default value. This behavior is different from using parameters with default values in stored procedures in which omitting the parameter also implies the default value.

所以你需要这样做:

SELECT dbo.fCalculateEstimateDate(647,DEFAULT)

关于sql - 更改 SQL Server 函数以接受新的可选参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12721869/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com