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

डैपर के साथ 2100 से अधिक पंक्तियों (आईडी द्वारा) को हटाने का सही तरीका

एक विकल्प सर्वर पर एक अस्थायी तालिका बनाना और फिर उस तालिका में सभी आईडी को एक साथ अपलोड करने के लिए बल्क लोड सुविधा का उपयोग करना है। फिर केवल अपने अस्थायी तालिका में अपलोड किए गए रिकॉर्ड को हटाने के लिए एक जॉइन, EXISTS या IN क्लॉज का उपयोग करें।

SQL सर्वर में बल्क लोड एक अच्छी तरह से अनुकूलित पथ है और यह बहुत तेज़ होना चाहिए।

उदाहरण के लिए:

  1. कथन निष्पादित करें CREATE TABLE #RowsToDelete(ID INT PRIMARY KEY)
  2. एक बल्क लोड का उपयोग करके #RowsToDelete . में कुंजियाँ डालें
  3. निष्पादित करें DELETE FROM myTable where Id IN (SELECT ID FROM #RowsToDelete)
  4. निष्पादित करें DROP TABLE #RowsToDelte (यदि आप सत्र बंद करते हैं तो तालिका भी स्वतः ही हटा दी जाएगी)

(डैपर मानते हुए) कोड उदाहरण:

conn.Open();

var columnName = "ID";

conn.Execute(string.Format("CREATE TABLE #{0}s({0} INT PRIMARY KEY)", columnName));

using (var bulkCopy = new SqlBulkCopy(conn))
{
    bulkCopy.BatchSize = ids.Count;
    bulkCopy.DestinationTableName = string.Format("#{0}s", columnName);

    var table = new DataTable();                    
    table.Columns.Add(columnName, typeof (int));
    bulkCopy.ColumnMappings.Add(columnName, columnName);

    foreach (var id in ids)
    {
        table.Rows.Add(id);
    }

    bulkCopy.WriteToServer(table);
}

//or do other things with your table instead of deleting here
conn.Execute(string.Format(@"DELETE FROM myTable where Id IN 
                                   (SELECT {0} FROM #{0}s", columnName));

conn.Execute(string.Format("DROP TABLE #{0}s", columnName));


  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

  2. SQL सर्वर व्यू में प्रोग्रामेटिक रूप से ODBC लिंक्ड टेबल कैसे बनाएं और क्या यह संपादन योग्य है?

  3. SQL सर्वर गुम अनुक्रमणिका

  4. एसक्यूएल:डेटाबेस में प्रत्येक वर्चर कॉलम में एक स्ट्रिंग की खोज करें

  5. किसी प्रोफ़ाइल में डेटाबेस मेल खाता जोड़ें (T-SQL)