स्वीकार करने के लिए मैं पहले से ही के रूप में SQL सर्वर 2005 में एक समारोह है एक एसक्यूएल सर्वर समारोह में परिवर्तन। यदि मैं @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
नहीं। फ़ंक्शन के प्रत्येक कॉल में निर्दिष्ट पैरामीटर की एक ही संख्या होनी चाहिए। आप हमेशा दो पैरामीटर के साथ * नया * फ़ंक्शन बना सकते हैं, और 'dbo.fCalculateEstimateDate' को एक रैपर फ़ंक्शन में बदल सकते हैं जो नए फ़ंक्शन को कॉल करने के लिए बस दूसरा पैरामीटर जोड़ता है। –
पृथ्वी पर क्यों यह संग्रहीत प्रक्रियाओं से अलग है? मुझे यकीन है कि आप केवल दूसरे पैरामीटर को छोड़ सकते हैं और यह सिर्फ काम करेगा! – Peter