it-swarm.asia

Penurunan versi dari SQL Server 2008 hingga 2005

File basis data yang dibangun menggunakan SQL 2008 tidak kompatibel dengan 2005. Apakah ada penyelesaian?

32
Sevki

Tidak perlu alat pihak ketiga. SQL Server 2008 Management Studio memberi kami alat yang sangat ampuh untuk mengonversi database karena mereka menambahkan opsi "Data skrip" ke wizard "Database skrip".

Cukup klik kanan DB di SQL2008 SSMS, dan pergi ke Tugas, lalu "Hasilkan Script"

Berjalan melalui wizard, pastikan untuk memilih "True" untuk "Script Data" di bawah tabel/opsi tampilan. Pilih semua objek, lalu jalankan skrip yang dibuatnya di server 2005. (Harap diingat bahwa skrip yang dibuat bisa besar-besaran jika database asli sangat besar!)

Perhatikan bahwa Anda bahkan dapat menjalankan wizard terhadap server SQL2005 untuk menurunkan konversi database SQL2005 ke SQL2000 (tentu saja Anda memerlukan alat 2008 yang diinstal pada workstation Anda).

16
BradC

Anda bisa BCP data dari satu contoh SQL Server ke contoh lain. Itu akan menjadi cara tercepat untuk menyalin data dari satu versi ke versi lain. Tergantung pada volume data, mungkin butuh waktu lama.

16

Tidak ada cara langsung, yang saya tahu, untuk menurunkan versi DB dari format 2008 menjadi 2005 sayangnya.

Cara saya melakukan ini di masa lalu (sebenarnya dengan versi SQL server yang lebih lama, tetapi prosesnya akan sama) adalah:

  1. Kembalikan DB pada contoh SQL2008 jika belum dilakukan
  2. Membangun DB kosong dengan struktur yang benar (tabel, indeks, batasan, tampilan, procs, pemicu, ...) pada contoh SQL2005. Semoga Anda bisa melakukan ini dari prosedur build yang ada dan/atau kode sumber, tetapi jika tidak, Anda dapat menggunakan SQL Server Manager untuk membuat skrip untuk semua yang ada di DB 2005 dan menjalankan hasilnya pada yang kosong pada contoh 2008.
  3. Pastikan kedua instance dapat saling melihat (mis. Tidak ada firewall yang memblokir koneksi jika instans berada pada mesin yang berbeda) dan menautkannya menggunakan sp_addlinkedserver .
  4. Salin semua data dari satu DB ke yang lain. Jika tidak ada batasan kunci asing dan masalah serupa di pemicu yang perlu dikhawatirkan, Anda bisa menautkan DB bersama-sama dan mengarahkan kursor ke daftar tabel (memilihnya dari sys.objects) dan menjalankan
    INSERT destinationserver.destinationdb.schema.table SELECT * FROM sourcedb.schema.table
    (atau INSERT schema.table SELECT * FROM sourceserver.sourcedb.schema.table jika Anda telah menautkan instance seperti itu di sekitar)
    untuk setiap tabel. Jika Anda memang memiliki kendala dan pemicu konsistensi antar-tabel, tentu saja Anda harus menjadi sedikit lebih pintar tentang pemesanan operasi ini, terutama jika Anda memiliki kendala siklik seperti tabel dengan kendala berdasarkan itu sendiri (satu hierarki memegang satu data, sebagai contoh yang mungkin).

Mungkin lebih efisien untuk hanya menyalin data terlebih dahulu dan menambahkan semua struktur lainnya (indeks, procs, pemicu, ...) setelah langkah 3. Ini menghindari masalah urutan penyisipan baris yang disebabkan oleh kendala dan pemicu, dan membangun indeks di akhir seharusnya secara teori lebih cepat daripada membangunnya karena semua data ditambahkan - meskipun jika Anda memiliki indeks berkerumun di tabel Anda buat ini sebelum menambahkan data karena mereka tidak akan lebih cepat untuk dibuat setelah fakta.

Tentu saja ini semua mengasumsikan bahwa tidak ada objek Anda menggunakan fitur spesifik SQL 2008 - jika mereka melakukannya, Anda diharapkan akan menemukan dan memperbaiki hal-hal seperti itu ketika ada kesalahan saat membangun kembali skema. Jika salah satu kode Anda bergantung pada perilaku resmi yang tidak terdefinisi yang kebetulan bervariasi di antara versi SQL Server, Anda mungkin memiliki beberapa bug yang lebih halus dan sulit dipahami untuk diburu dan disetrika kemudian.

15
David Spillett

Saya menghadapi situasi yang sama dan menggunakan Database Publishing Wizard untuk skema skrip dan data untuk SQL Server 2005 dari database SQL Server 2008.

SQL Server Hosting Layanan Web (dan toolkit)

Wisaya Penerbitan Basis Data

7
CoderHawk

Pertama-tama Anda harus skrip database dan pastikan pada versi yang Anda tentukan jenis yang ingin Anda turunkan peringkatnya. Dan untuk menyalin data dari versi yang lebih tinggi ke versi yang lebih rendah, membandingkan SQL Data akan membantu Anda.

Semoga berhasil!

1
Mbongeni