आपको एक मध्यवर्ती चर का उपयोग करने की आवश्यकता है। SQL सर्वर पैरामीटर सूची में ही इस तरह के ऑपरेशन का समर्थन नहीं करता है, हालांकि यह कुछ वर्षों से TODO सूची में है! (कनेक्ट आइटम देखें:स्केलर फ़ंक्शन को संग्रहीत कार्यविधि पैरामीटर के रूप में उपयोग करें)
EXEC
. के लिए व्याकरण है
[ { EXEC | EXECUTE } ]
{
[ @return_status = ]
{ module_name [ ;number ] | @module_name_var }
[ [ @parameter = ] { value
| @variable [ OUTPUT ]
| [ DEFAULT ]
}
]
[ ,...n ]
[ WITH <execute_option> [ ,...n ] ]
}
[;]
दस्तावेज़ वर्तमान में value
. के लिए स्वीकार्य प्रारूप पर स्पष्ट नहीं है लेकिन ऐसा लगता है कि यह केवल "सरल" भाव हैं जैसे कि शाब्दिक मूल्य या @@
प्रीफ़िक्स्ड सिस्टम फ़ंक्शंस (जैसे @@IDENTITY
) अन्य सिस्टम फ़ंक्शन जैसे SCOPE_IDENTITY()
अनुमति नहीं है (यहां तक कि वे जिन्हें CURRENT_TIMESTAMP
जैसे कोष्ठकों की आवश्यकता नहीं है) अनुमति नहीं है)।
तो कुछ समय के लिए आपको नीचे दिए गए सिंटैक्स का उपयोग करने की आवश्यकता है
DECLARE @pID INT;
SET @pID = 1;
/*If 2008+ for previous versions this needs to be two separate statements*/
DECLARE @string VARCHAR(50) = 'Could not find given id: ' + CAST(@pID AS VARCHAR(11))
EXEC WriteLog
'Component',
'Source',
@string