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

Database SQL Server di UNC share

AttachDbFileName adalah fitur yang mengerikan dan menyesatkan. Yang terjadi adalah setiap aplikasi yang terhubung ke "database" ini membuat salinan dari file data. Jadi jika Machine1 menghubungkan, dan membuat perubahan, perubahan itu tidak terlihat oleh Machine2 . Ini menyebabkan banyak kebingungan bahkan dalam skenario mesin tunggal karena orang akan terhubung melalui Visual Studio, membuat beberapa pembaruan, dan kemudian tidak akan melihatnya dari Management Studio. Atau sebaliknya. User Instance fitur tidak digunakan lagi untuk sebuah alasan; tolong hentikan penggunaan keduanya.

Karena Anda ingin beberapa mesin/aplikasi terhubung ke sama salinan database Anda, solusi yang Anda inginkan adalah memiliki satu salinan database yang dilampirkan ke satu contoh SQL Server, dan kedua aplikasi/mesin hanya terhubung ke salinan tunggal itu.

Di MACHINE1-PC lakukan ini:

  1. Pindahkan ShopDatabase.mdf dan .ldf yang terkait dengannya file dari folder pengguna Anda dan ke dalam folder data untuk instance Anda. Ini akan menjadi sesuatu seperti:

  2. Hubungkan ke instans Express lokal menggunakan .\SQLEXPRESS . Lampirkan database menggunakan kode berikut:

    CREATE DATABASE ShopDatabase 
      ON (FILENAME = 'C:\...\ShopDatabase.mdf'), 
      -------------------^^^ fill this in
         (FILENAME = 'C:\...\ShopDatabase_Log.ldf') 
      -------------------^^^ fill this in
    FOR ATTACH;
    
    -- if there is no log file, you may need to do:
    
    CREATE DATABASE ShopDatabase 
      ON (FILENAME = 'C:\...\ShopDatabase.mdf') 
      -------------------^^^ fill this in
    FOR ATTACH_REBUILD_LOG;
    
  3. Tentukan alamat IP eksternal MACHINE1-PC (Anda dapat melakukan ini melalui ping dari komputer lain - secara lokal ia akan memberi tahu Anda 127.0.0.1 yang tidak berguna). Dengan asumsi Anda memiliki IP tetap dan tidak menggunakan DHCP, ini kemungkinan akan menjadi cara yang lebih andal untuk terhubung, atau setidaknya tidak ada langkah tambahan (menyelesaikan nama). Jika Anda menggunakan DHCP, Anda tidak ingin bergantung pada ini karena alamat IP Anda berpotensi berubah seiring waktu. String koneksi Anda sekarang seharusnya:

    Data Source=MACHINE1-PC\SQLEXPRESS;
      Network=DBMSSOCN;
      Integrated Security=True;
      Initial Catalog=ShopDatabase;
    
    -- or:
    
    Data Source=<<IP Address>>\SQLEXPRESS;
      Network=DBMSSOCN;
      Integrated Security=True;
      Initial Catalog=ShopDatabase;
    
    -- (replace <<IP Address>> of course)
    

Di Machine1 string koneksi Anda bisa gunakan Data Source=.\SQLEXPRESS , tetapi lebih baik konsisten daripada menyimpan beberapa penekanan tombol. Dengan cara ini jika Anda membuat perubahan lain pada file konfigurasi Anda, dll. mereka dapat didistribusikan ke mesin lain tanpa perlu mengubah nama mesin.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Mengubah Nomor Urutan Akun Email Database dalam Profil di SQL Server (T-SQL)

  2. Masukkan nilai dari Tabel lain di sql server 2008

  3. Dapatkan Info Kolom untuk Tabel atau Tampilan di SQL Server (T-SQL:sp_columns)

  4. SQL Server 2016

  5. Pengembangan Mesin Virtual Azure untuk Penggunaan SQL Server