我已經在SQL Server 2005中的功能:改變SQL服務器功能來接受新的可選參數
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)
爲
爲該過程提供的參數數量不足或 函數dbo.fCalculateEstimateDate。
根據我的理解應該不會發生。
我錯過了什麼? 在此先感謝。
有什麼辦法保持SELECT dbo.fCalculateEstimateDate(647)調用工作? – MaxRecursion
否。每個函數調用都必須指定相同數量的參數。你總是可以用兩個參數創建一個* new *函數,並將'dbo.fCalculateEstimateDate'變成一個包裝函數,它簡單地添加第二個參數來調用新函數。 –
爲什麼這與存儲過程有所不同?林肯定你可以跳過第二個參數,它會工作! – Peter