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

एक से अधिक 'इन' स्टेटमेंट जहां क्लॉज को एक दूसरे के खिलाफ मैच करने की आवश्यकता होती है

आप तालिका प्रकार बना सकते हैं और इसके माध्यम से मान पास कर सकते हैं, जैसे:

CREATE TYPE Suite_Lease AS TABLE
(
suite_id varchar(15) NOT NULL,
lease_id varchar(15) NOT NULL
)
GO
CREATE PROC DoUpdate
  @Params Suite_Lease READONLY,
  @uplift varchar(15),
  @code varchar(15)
AS
  update  property.lease_period  set
     scca_uplift = @uplift,
     scca_notes_code = @code
  from property.lease_period tab
  JOIN @params filt
    on tab.suite_id=filt.suite_id AND tab.lease_id=filt.lease_id

इससे आपका प्रक्रिया संचय बना रहेगा सूखा और साफ, इसके बजाय यदि आप कई "बड़े" का उपयोग कर रहे हैं जहां खंड हैं

तालिका पैरामीटर को संग्रहीत कार्यविधि में कैसे पास करें (c#):

        DataTable dt = new DataTable();
        dt.Columns.Add(new DataColumn("suite_id", typeof (string)) {AllowDBNull = false, MaxLength = 15});
        dt.Columns.Add(new DataColumn("lease_id", typeof (string)) {AllowDBNull = false, MaxLength = 15});
        dt.Rows.Add("CCBG08", "205059");

        ... add more rows for match

        using (var c = new SqlConnection("ConnectionString"))
        {
            c.Open();
            using(var sc = c.CreateCommand())
            {
                sc.CommandText = "DoUpdate";
                sc.CommandType = CommandType.StoredProcedure;
                sc.Parameters.AddWithValue("@uplift", "110");
                sc.Parameters.AddWithValue("@code", "21006");
                sc.Parameters.Add(new SqlParameter("@Params", SqlDbType.Structured) { TypeName = null, Value = dt });
                sc.ExecuteNonQuery();
            }
        }


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पेजिंग को लागू करने का कारगर तरीका

  2. फ़िल्टरिंग जॉइन:WHERE बनाम ON

  3. विजुअल स्टूडियो 2012 में SQL सर्वर T-SQL को कैसे डिबग करें

  4. SQL सर्वर स्कीमा और डिफ़ॉल्ट स्कीमा

  5. दो अलग-अलग डेटाबेस से कई कॉलम के मान की तुलना करें