Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Cara terbaik untuk menangkap pelanggaran batasan unik sql di c # selama penyisipan

Apa yang Anda cari adalah SqlException, khususnya pelanggaran batasan kunci utama. Anda bisa mendapatkan kesalahan khusus ini dari pengecualian ini dengan melihat properti number dari pengecualian yang dilemparkan. Jawaban ini mungkin relevan dengan apa yang Anda butuhkan:Bagaimana Mengidentifikasi duplikasi kunci utama dari kode kesalahan SQL Server 2008?

Singkatnya, terlihat seperti ini:

// put this block in your loop
try
{
   // do your insert
}
catch(SqlException ex)
{
   // the exception alone won't tell you why it failed...
   if(ex.Number == 2627) // <-- but this will
   {
      //Violation of primary key. Handle Exception
   }
}

EDIT:

Ini mungkin sedikit meretas, tetapi Anda juga bisa memeriksa komponen pesan dari pengecualian. Sesuatu seperti ini:

if (ex.Message.Contains("UniqueConstraint")) // do stuff


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ganti Pengoptimal Kueri untuk Gabungan T-SQL Anda dengan FORCEPLAN

  2. Mengacu pada Alias ​​Kolom dalam Klausa WHERE

  3. cara menetapkan nilai cte ke variabel

  4. PIVOT di sql 2005

  5. IDENT_CURRENT vs @@IDENTITY vs SCOPE_IDENTITY di SQL Server:Apa Perbedaannya?