2010-09-30 7 views
7

इस संग्रहीत प्रक्रिया में कॉल के ऊपर एक अलग संग्रहित प्रक्रिया के लिए एक और कॉल है। पहली प्रक्रिया @NewIdentifier पर कुछ असाइन करने की आवश्यकता होगी, अन्यथा मुझे डिफ़ॉल्ट SaleId का उपयोग करने की आवश्यकता है।असाइनमेंट में एक ISNULL के साथ संग्रहीत प्रक्रिया कॉल। अवैध वाक्य रचना?

exec myStoredProc @SaleId = ISNULL(@NewIdentifier, @SaleId) 

यह काम करता है अगर मैं इसे इस तरह से

declare @Id int 
set @Id = ISNULL(@NewIdentifier, @SaleId) 
exec myStoredProc @SaleId = @Id 

एक संग्रहीत प्रक्रिया पैरामीटर का काम में ISNULL उपयोग करने के लिए यह संभव है? मुझे यकीन नहीं है कि इस वाक्यविन्यास के बारे में क्या अमान्य है।

उत्तर

8

पैरामीटर एक निरंतर या एक चर होना चाहिए। यह एक अभिव्यक्ति नहीं हो सकता।

+0

आह, मैं देख रहा हूँ। धन्यवाद जो। – Brandon

0

क्या यह संभव है '=' ऑपरेटर से '(' कम पूर्वता है? यदि हां, तो यह कार्यकारी myStoredProc (@SaleId = IsNull) (@NewIdentifier, @SaleId) के रूप में पार्स किया जाएगा, जो होगा एक सिंटैक्स त्रुटि।

संबंधित मुद्दे