Saya memiliki sistem MS SQL Server 2008 Express yang berisi database yang saya ingin 'salin dan ganti nama' (untuk tujuan pengujian) tetapi saya tidak mengetahui cara sederhana untuk mencapai ini.
Saya perhatikan bahwa dalam SQL Server versi R2 ada penyihir basis data salin, tapi sayangnya saya tidak bisa memutakhirkan.
Basis data yang dimaksud adalah sekitar manggung. Saya berusaha memulihkan cadangan database yang ingin saya salin ke database baru, tetapi tidak berhasil.
Jawaban:
Instal Microsoft SQL Management Studio, yang dapat Anda unduh secara gratis dari situs web Microsoft:
Versi 2008
Microsoft SQL Management Studio 2008 adalah bagian dari SQL Server 2008 Express dengan Layanan Lanjutan
Versi 2012
Klik tombol unduh dan periksa
ENU\x64\SQLManagementStudio_x64_ENU.exe
Versi 2014
Klik tombol unduh dan periksa MgmtStudio
64BIT\SQLManagementStudio_x64_ENU.exe
Buka Microsoft SQL Management Studio .
sumber
Klik kanan database untuk mengkloning, klik
Tasks
, klikCopy Database...
. Ikuti wizard dan Anda selesai.sumber
Anda bisa mencoba untuk melepaskan basis data, menyalin file ke nama baru di prompt perintah, kemudian melampirkan kedua DB.
Dalam SQL:
Di Command prompt (saya telah menyederhanakan jalur file untuk kepentingan contoh ini):
Dalam SQL lagi:
sumber
select * from OriginalDB.sys.sysfiles
untuk menemukan lokasi file DB.Permission denied
di.mdf
file. Saya tidak membutuhkannya sekarang, saya hanya perlu cadangan DB asli, jadi saya bisa menimpa DB asli dengan itu nanti, saya hanya ingin tahu mengapa saya mendapatkan kesalahan seperti itu.exec sp_helpdb @dbname='TEMPDB';
Ternyata saya mencoba memulihkan dari cadangan secara tidak benar.
Awalnya saya membuat database baru dan kemudian mencoba mengembalikan cadangan di sini. Apa yang seharusnya saya lakukan, dan apa yang berhasil pada akhirnya, adalah membuka dialog restore dan mengetik nama database baru di bidang tujuan.
Jadi, singkatnya, memulihkan dari cadangan berhasil.
Terima kasih untuk semua tanggapan dan saran kalian
sumber
Ini skrip yang saya gunakan. Agak sulit tetapi berhasil. Diuji pada SQL Server 2012.
sumber
SET @sourceDb_log = (SELECT files.name FROM sys.databases dbs INNER JOIN sys.master_files files ON dbs.database_id=files.database_id WHERE dbs.name=@sourceDb AND files.type=1)
dan variabel terpisah untuk @sourceDb_data dengan permintaan yang sama (menggantikanfiles.type=0
). HTH!Tidak ada solusi yang disebutkan di sini yang berfungsi untuk saya - Saya menggunakan SQL Server Management Studio 2014.
Alih-alih, saya harus menghapus centang pada kotak centang "Ambil cadangan tail-log sebelum pulihkan" di layar "Opsi": dalam versi saya ini dicentang secara default dan mencegah operasi Pemulihan selesai. Setelah menghapus centang, operasi Pulihkan berjalan tanpa masalah.
sumber
Menggunakan MS SQL Server 2012, Anda perlu melakukan 3 langkah dasar:
Pertama, buat
.sql
file yang hanya mengandung struktur DB sumber.sql
file secara lokalKedua, ganti DB sumber dengan yang tujuan di
.sql
fileAkhirnya, isi dengan data
Data Source=Mehdi\SQLEXPRESS;Initial Catalog=db_test;User ID=sa;Password=sqlrpwrd15
Kamu selesai.
sumber
Dalam SQL Server 2008 R2, buat cadangan database sebagai file ke dalam folder. Kemudian pilih opsi restore yang muncul di folder "Database". Di wizard masukkan nama baru yang Anda inginkan di database target. Dan pilih pulihkan file dari file dan gunakan file yang baru saja Anda buat. Saya hanya melakukannya dan itu sangat cepat (DB saya kecil, tapi tetap saja) Pablo.
sumber
Jika database tidak terlalu besar, Anda mungkin melihat perintah 'Script Database' di SQL Server Management Studio Express, yang berada dalam menu konteks dari item database itu sendiri di explorer.
Anda dapat memilih apa semua untuk skrip; Anda menginginkan objek dan data, tentu saja. Anda kemudian akan menyimpan seluruh skrip ke satu file. Kemudian Anda dapat menggunakan file itu untuk membuat kembali basis data; pastikan saja
USE
perintah di atas diatur ke database yang tepat.sumber
Solusinya, berdasarkan komentar ini: https://stackoverflow.com/a/22409447/2399045 . Cukup atur pengaturan: Nama DB, folder temp, folder file db. Dan setelah dijalankan Anda akan memiliki salinan DB dengan Nama dalam format "sourceDBName_yyyy-mm-dd".
sumber
Script berdasarkan jawaban Joe ( lepaskan, salin file, lampirkan keduanya ).
Itu tidak perlu, tapi mungkin akses ditolak kesalahan saat menjalankan.
@dbName
dan@copyDBName
variabel sebelumnya.sumber
Anda bisa membuat database baru dan kemudian pergi ke tugas, mengimpor data, dan mengimpor semua data dari database yang ingin Anda duplikat ke database yang baru saja Anda buat.
sumber
Cara lain yang melakukan trik dengan menggunakan impor / ekspor wizard , pertama buat database kosong, lalu pilih sumber yang merupakan server Anda dengan database sumber, dan kemudian di tujuan pilih server yang sama dengan database tujuan (menggunakan database kosong Anda buat pada awalnya), lalu tekan finish
Ini akan membuat semua tabel dan mentransfer semua data ke database baru,
sumber