Lebih
SQL Server - Menyalin data dari satu database ke database lain - tabel yang identik, nilai identitas baru diperlukan
Begini'Masalahnya, saya telah menjalankan salinan identik situs web saya untuk dua wilayah geografis yang berbeda. Situs ini sekarang mendukung harga multi-mata uang jadi saya ingin menggabungkan kedua situs bersama-sama.
Semua tabel yang perlu saya gabungkan berbasis Identitas dan bodohnya tabel yang cocok di setiap salinan database diunggulkan pada nomor yang sama.
Apakah ada cara untuk menyalin data dari satu database ke database lain pada saat yang sama memberikan data salinan nilai identitas baru yang juga tercermin dalam nilai kunci asing dari tabel yang direferensikan?
yaitu.
Account
- Id
- Email
- FirstName
- etc
AccountImage
- Id
- Account_id
- FileName
- etc
Dan seterusnya...
1
3
Kecuali saya melewatkan sesuatu, masalah Anda bukan memindahkan data, melainkan berurusan dengan nilai identitas yang sudah diatur. Jika itu masalahnya maka cobalah ini.
Selama Anda konsisten dalam nilai yang Anda tambahkan semua hubungan Anda akan tetap sama ke dalam DB gabungan. Jadi misalnya
Anda memiliki tabel karyawan dengan id maksimal saat ini 200.000 di DB A dan 1.400.000 di DB B. Anda memutuskan untuk memindahkan data dari DB A ke DB B karena itu berarti memindahkan lebih sedikit data. Saat Anda memindahkan tabel karyawan Anda, Anda menambahkan 2.000.000 ke kolom Employee_Id.
Dan saran terakhir, cadangkan semuanya sebelum Anda mulai jika Anda membuat kesalahan :)
JIKA kedua database server yang sama dan Anda memiliki izin untuk mengakses kedua database tersebut
Metode 1:
Anda dapat membuat skrip seluruh database utama dan menjalankannya dengan nama database baru, maka Anda akan memiliki skema dan data yang sama dari database utama (Mungkin dari SQL server 2008 Versi dan seterusnya)
Metode 2:
Jika Anda hanya membutuhkan beberapa tabel dengan skema, hubungan dan data maka skrip dari database utama
Ikuti hirarki tabel - 1. Tabel master 2. Tabel anak
Jalankan dalam urutan yang sama
Metode 3:
Jika Anda hanya membutuhkan skema tabel dan data, maka pilih IMPORT/EXPORT
Mungkin cara termudah adalah dengan melakukan insert...select, mereferensikan ulang pada saat yang sama dengan menggunakan set identity_insert on dan menambahkan nilai tetap ke identitas yang ada untuk memastikan tidak ada konflik antara kumpulan data?
Sesuatu seperti ini: