Bagaimana cara menyalin database SQL Server 2008 melalui kode C#

Saya ingin menyalin skema database SQL Server 2008 yang ada, tetapi bukan datanya, ke database baru di server yang sama (yaitu MyDB => MyDB_Test) menggunakan C#.

Saya menemukan beberapa contoh kode di http://www.codeproject.com/KB/cs/CopyDBSchemaUsingSMO.aspx yang tampaknya melakukan apa yang saya inginkan tetapi terus memunculkan kesalahan berikut pada baris ddatabase.Create():

Could not load file or assembly 'Microsoft.SqlServer.BatchParser,
Version=9.0.242.0, Culture=neutral,

PublicKeyToken=89845dcd8080cc91' atau salah satu dependensinya. Sistem tidak dapat menemukan file yang ditentukan.":"Microsoft.SqlServer.BatchParser, Version=9.0.242.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"

Saya mencoba menemukan DLL yang hilang tetapi saya hanya dapat menemukan versi untuk SQL Server 2005. Saya tidak yakin apakah saya harus menggunakannya, mencari unduhan alternatif atau mengambil pendekatan yang sama sekali berbeda.

Bantuan apa pun akan sangat dihargai!!


person Louis S. Berman    schedule 27.01.2010    source sumber


Jawaban (2)


Saya telah melihat instalasi komponen SQL Server 2008 yang tidak lengkap pada mesin - dalam hal ini, langsung saja ke Situs pengunduhan Microsoft dan ambil sendiri Microsoft SQL Server 2008 Management Objects (sedikit di bawah tengah) dalam versi yang sesuai (x86 32-bit, atau x64 64-bit atau IA64 64-bit - tergantung kebutuhan Anda).

Instal itu dan coba lagi.

Hal lain yang mungkin ingin Anda pertimbangkan adalah membeli dan menggunakan alat yang sudah ada, daripada menulis semua kode sendiri. Lihat mis. Bandingkan SQL Red-Gate yang memungkinkan Anda melakukan ini - bandingkan dua database (strukturnya) dan pastikan keduanya berada pada level yang sama.

person marc_s    schedule 27.01.2010
comment
Terima kasih atas jawaban cepatnya. Saya akan memeriksanya sekarang. Mengenai kebutuhan saya untuk melakukan ini dalam kode, saya memerlukannya untuk tes integrasi otomatis... - person Louis S. Berman; 27.01.2010
comment
Saya menginstal Objek Manajemen tetapi masih mendapat kesalahan: Tidak dapat memuat file atau rakitan 'Microsoft.SqlServer.BatchParser, Versi=9.0.242.0, Budaya=netral, PublicKeyToken=89845dcd8080cc91' atau salah satu dependensinya. Sistem tidak dapat menemukan file yang ditentukan.:Microsoft.SqlServer.BatchParser, Version=9.0.242.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91 - person Louis S. Berman; 27.01.2010
comment
Oke, aneh - apakah Anda menemukan file Microsoft.SqlServer.BatchParser.dll di suatu tempat di harddisk Anda? - person marc_s; 27.01.2010
comment
Versi 9.0 sepertinya menunjukkan SQL Server 2005..... mungkinkah Anda menginstal SQL Server 2005 dan 2008? Mungkin hanya mengambil (atau mencari) versi SMO yang salah..... - person marc_s; 27.01.2010

Beberapa hal yang terlintas dalam pikiran, yang menurut saya perlu dipertimbangkan:

Sepertinya ini bukan hanya sekali saja, tetapi sesuatu yang ingin Anda lakukan di lebih banyak kesempatan, jadi saya sarankan:

  1. menyimpan seluruh skrip pembuatan db dan menjalankannya. IMHO, ini adalah hal yang baik untuk dimiliki dalam kendali sumber
  2. memiliki cadangan database yang bersih (kosong) (pada dasarnya salinan templat), dan memulihkannya sebagai DB baru
person AdaTheDev    schedule 27.01.2010