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

मौजूद होने पर SQLBulkCopy डालने या अपडेट करने का कोई तरीका?

मैंने इस समस्या को हल करने के लिए एक nuget पैकेज (SqlBulkTools) प्रकाशित किया।

यहां एक कोड उदाहरण दिया गया है जो बल्क अपरर्ट प्राप्त करेगा।

var bulk = new BulkOperations();
var books = GetBooks();

using (TransactionScope trans = new TransactionScope())
{
    using (SqlConnection conn = new SqlConnection(ConfigurationManager
    .ConnectionStrings["SqlBulkToolsTest"].ConnectionString))
    {
        bulk.Setup<Book>()
            .ForCollection(books)
            .WithTable("Books")
            .AddAllColumns()
            .BulkInsertOrUpdate()
            .MatchTargetOn(x => x.ISBN)
            .Commit(conn);
    }

    trans.Complete();
}

बहुत बड़ी तालिकाओं के लिए, टेबल लॉक जोड़ने और गैर-संकुल अनुक्रमणिका को अस्थायी रूप से अक्षम करने के विकल्प हैं। अधिक उदाहरणों के लिए SqlBulkTools Documentation देखें।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SSMS 2016 Azure SQL v12 bacpac आयात करने में त्रुटि:पासवर्ड के बिना मास्टर कुंजियाँ समर्थित नहीं हैं

  2. SQL सर्वर (T-SQL उदाहरण) में 'datetimeoffset' को 'datetime2' में बदलें

  3. ABS () SQL सर्वर में उदाहरण

  4. SQL सर्वर में FORMAT () द्वारा समर्थित मानक दिनांक/समय प्रारूप स्ट्रिंग्स

  5. एसक्यूएल में जाने के साथ गतिशील क्वेरी निष्पादित करें