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

apa masalahnya dengan AttachDbFilename?

Menggunakan User Instance berarti SQL Server membuat salinan khusus dari file database itu untuk digunakan oleh program Anda. Jika Anda memiliki dua program berbeda yang menggunakan string koneksi yang sama, mereka mendapatkan dua salinan database yang sama sekali berbeda. Ini mengarah ke lot kebingungan, karena orang akan menguji pemutakhiran data dengan program mereka, lalu menyambungkan ke salinan lain dari database mereka di Management Studio, dan mengeluh bahwa pemutakhiran mereka tidak berfungsi. Ini membuat mereka melalui serangkaian langkah pengejaran angsa liar yang cacat mencoba memecahkan masalah yang salah.

Artikel ini membahas lebih dalam tentang cara menggunakan fitur ini, tetapi perhatikan catatan pertama:User Instance fitur tidak digunakan lagi . Di SQL Server 2012, alternatif yang disukai adalah (dalam urutan ini, IMHO):

  1. Buat atau lampirkan database Anda ke contoh nyata SQL Server. String koneksi Anda kemudian hanya perlu menentukan nama instance, nama database, dan kredensial. Tidak akan ada campur aduk karena Management Studio, Visual Studio, dan program Anda semuanya akan terhubung ke satu salinan database.

  2. Gunakan SqlLocalDb untuk pembangunan daerah. Saya yakin saya mengarahkan Anda ke artikel ini kemarin:"Memulai SQL Server 2012 Express LocalDB."

  3. Gunakan SQL Server Compact. Saya paling tidak menyukai opsi ini karena fungsionalitas dan sintaksnya tidak sama - jadi itu tidak selalu akan memberi Anda semua fungsionalitas yang pada akhirnya ingin Anda gunakan. Edisi Ringkas juga tidak digunakan lagi, jadi begitulah.

Tentu saja jika Anda menggunakan versi SqlLocalDb bukan pilihan - jadi Anda harus membuat database nyata dan menggunakannya secara konsisten. Saya hanya menyebutkan opsi Ringkas untuk kelengkapan - Saya pikir itu ide yang hampir sama buruknya dengan menggunakan AttachDbFileName .

EDIT: Saya telah membuat blog tentang ini di sini:

  • Kebiasaan Buruk :Menggunakan AttachDBFileName


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ROLLBACK TRUNCATE di SQL Server

  2. Bagaimana Anda mentransfer atau mengekspor data SQL Server 2005 ke Excel?

  3. Penggabungan String SQL Server dengan Null

  4. Kesalahan overflow aritmatika mengonversi ekspresi ke tipe data datetime. (sambil menampilkan tanggal waktu..)

  5. Database yang dapat menangani>500 juta baris