2014-04-07 3 views
9

मैं एक संग्रहित प्रक्रिया में एक चर के रूप में एक तालिका मूल्यवान पैरामीटर को पास करना चाहता हूं और कक्षा SqlMetadata के निर्माता में एक स्ट्रिंग की लम्बाई (लंबी अधिकतम लंबाई) निर्दिष्ट कर सकता है जिसे कोई जोड़ना चाहता है तालिका के कॉलम में।तालिका मूल्यवान पैरामीटर में अधिकतम से nvarchar लंबाई सेट करना

Microsoft.SqlServer.Server.SqlMetaData[] tvpdefinition = 
     { 

      new SqlMetaData("ValueOne", SqlDbType.NVarChar, 100), 
      new SqlMetaData("ValueTwo",SqlDbType.NVarChar, 100) 
     } 

कैसे एक एक 'अधिकतम' लंबाई निर्दिष्ट करने के बारे में जा सकते हैं इतना है कि यह इस स्तंभ

ValueOne (nvarchar(max), not null) 

के रूप में लंबाई

उत्तर

13

In this article on MSDN यह निर्दिष्ट किया जाता है, उदाहरण के लिए 100 का मान करने का विरोध के साथ मेल खाती कि आप इस प्रकार MAX आकार को

SqlParameter myParam = new SqlParameter("@paramName", SqlDbType.NVarChar, SqlMetaData.Max); 

अंतिम देखें उपरोक्त लेख पर उदाहरण।
तो, जानते हुए भी कि कैसे आपकी SqlMetaData वर्ग परिभाषित किया गया है, और मान है कि पिछले पैरामीटर एक अंतर्निहित SqlParameter के आकार प्रॉपर्टी है बिना, मुझे लगता है कि आप

Microsoft.SqlServer.Server.SqlMetaData[] tvpdefinition = 
{ 
    new SqlMetaData("ValueOne", SqlDbType.NVarChar, SqlMetaData.Max), 
    .... 
} 
+1

मैं सिर्फ इतना है कि अब भी जाँच लिख सकता है ... पूछने से पहले जांच करनी चाहिए। माफी – Arianule

+0

कोई अपराध नहीं होने पर कोई माफ़ी नहीं है। इसके विपरीत आपका एक दिलचस्प सवाल है, और यह मेरे ज्ञान को बेहतर बनाने का एक मूल्यवान तरीका रहा है। – Steve

+2

बीटीडब्ल्यू, आप -1 के बजाय 'SqlMetaData.Max' का उपयोग कर सकते हैं, जो थोड़ा साफ-सुथरा दिख सकता है। –

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