Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर संग्रहीत कार्यविधि varchar को int . में बदलें

आप इस तथ्य का लाभ उठा सकते हैं कि SQL Server 2008 अब तालिका प्रकारों का समर्थन करता है। आप एक टेबल टाइप को परिभाषित कर सकते हैं और .net साइड पर एक DataTable . बना सकते हैं और इसे अपनी संग्रहीत प्रक्रिया के पैरामीटर के रूप में पास करें। SP की ओर से वह पैरामीटर प्रकार का है [जो भी टैबलेट प्रकार आपने बनाया है] यहाँ एक उदाहरण है।

TotalPositions = [Some List] //of CSV List
DataTable Positions = new DataTable(); //Create the Datatype
Positions.Columns.Add("PositionID", typeof(int)); //
foreach (string sPos in TotalPositions.Split(','))
Positions.Rows.Add(int.Parse(sPos)); 

फिर आप अपनी संग्रहीत कार्यविधि के लिए एक पैरामीटर के रूप में स्थितियाँ जोड़ सकते हैं

SqlParameter Param = new SqlParameter();
Param.Value = Positions
Param.SqlDbType = SqlDbType.Structured;
Param.ParameterName = @Positions                    
command.Parameters.Add(Param);

अपने डेटाबेस में आपको एक टेबल टाइप को

. के रूप में परिभाषित करना होगा
CREATE TYPE [dbo].[Positions] AS TABLE(
    [Position] int NULL,
)
GO

और अपनी संग्रहित प्रक्रिया में जोड़ें

@MyPositions Positions Readonly

अब आप @MyPositions . का इलाज कर सकते हैं अपनी प्रक्रिया में एक तालिका के रूप में और इसकी तुलना करें।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैं SQL सर्वर में एक चर पंक्ति का चयन कैसे करूं?

  2. दो स्थितियों का उपयोग करके रिकॉर्ड खोजने पर सरल SQL सर्वर क्वेरी स्पष्टीकरण

  3. एक पिवट से मूल्यों को कैसे एकत्रित करें?

  4. एसक्यूएल आईएफ ब्लॉक कोड त्रुटि उत्पन्न कर रहा है, भले ही इसे निष्पादित नहीं करना चाहिए

  5. CTE का उपयोग करके SQL कथन को सरल बनाएं