2009-01-15 17 views
14

का डेटाटाइप निर्धारित करें क्या टीएसक्यूएल में रनटाइम पर स्थानीय चर के प्रकार को निर्धारित करना संभव है?एसक्यूएल सर्वर 2005: परिवर्तनीय

उदाहरण के लिए, कहते हैं कि मैं इन पंक्तियों के साथ कुछ करना चाहता था:

IF (@value IS INTEGER) 

या

IF (TYPEOF(@value) = <whatever>) 

किसी को भी किसी भी तरह से यह पूरा करने के बारे में पता है?

संपादित करें: यह एक विशिष्ट कार्य के लिए नहीं है, यह एक सामान्य ज्ञान प्रश्न है। मैं उन उत्तरों की सराहना करता हूं जो इंगित करते हैं कि इस प्रकार को जाना चाहिए क्योंकि इसे उसी बैच के भीतर घोषित किया गया है, मैं इस बारे में उत्सुक हूं कि किस प्रकार रनटाइम पर टाइप किया जा सकता है।

उत्तर

27

रन इस

declare @d int 

select @d = 500 

if cast(sql_variant_property(@d,'BaseType') as varchar(20)) = 'int' 
print 'yes' 
else 
print 'no' 
+0

नोट: SQL सर्वर के मेरे संस्करण में, मुझे कॉलम के बजाय एक चर पर sql_variant_property() चलाने में त्रुटि मिलती है। –

-1

मुझे ऐसा नहीं लगता - लेकिन यह एक स्थानीय चर है इसलिए इसे उसी प्रक्रिया में घोषित कर रहे हैं ताकि आप किसी भी तरह से जान सकें - या क्या मुझे कुछ याद आ रहा है?

+0

आप ऊपर उल्लिखित दृष्टिकोण @SQLMenace कुछ बिल्ट-इन कार्य के लिए बदले प्रकार पता कर सकते हैं के साथ। कृपया एक त्वरित उदाहरण के लिए यह [पोस्ट] (http://climenco.blogspot.com/2014/04/t-sql-coalesce-returns-int.html) देखें। –

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