Pencadangan tingkat tabel

Jawaban:

89

Anda tidak dapat menggunakan BACKUP DATABASEperintah untuk membuat cadangan satu tabel, kecuali tentu saja tabel tersebut dialokasikan untuk tabel itu sendiri FILEGROUP.

Apa yang dapat Anda lakukan, seperti yang Anda sarankan adalah Mengekspor data tabel ke file CSV. Sekarang untuk mendapatkan definisi tabel Anda, Anda dapat 'Script out' CREATE TABLEscriptnya.

Anda dapat melakukan ini dalam SQL Server Management Studio, dengan:

klik kanan Database> Tasks> Generate Script

Anda kemudian dapat memilih tabel yang ingin Anda skrip dan juga memilih untuk menyertakan objek terkait, seperti batasan dan indeks.

untuk menyelesaikannya DATAhanya dengan schema, Anda harus memilih Advancedpada tab opsi set scripting, dan di GENERALbagian setel Types of data to scriptpilihSchema and Data

Semoga ini bisa membantu tetapi jangan ragu untuk menghubungi saya secara langsung jika Anda memerlukan bantuan lebih lanjut.

John Sansom
sumber
'Database Publishing Wizard' akan mengotomatiskan langkah-langkah yang telah saya uraikan.
John Sansom
25
John, Jangan lupa untuk menyebutkan bahwa untuk mendapatkan DATA hanya dengan skema, Anda harus memilih Advanceddi tab set scripting options, dan di bagian GENERAL setel Types of data to scriptpilih Schema and Data. Itu tidak jelas saat pertama kali saya melakukannya.
Alex C
Tip Alex sangat penting. Juga, apakah ada cara untuk membuat skrip ini daripada melalui menu di SQL Server?
sooprise
1
Anda harus dapat mencapai ini dengan menggunakan kombinasi PowerShell dan SMO. Lihat artikel ini dari Phil Factor sebagai panduan: simple-talk.com/sql/database-administration/…
John Sansom
@AlexC Terima kasih! Menyelamatkan saya dari sakit kepala :)
Simon Whitehead
55

Saya menggunakan utilitas penyalinan massal untuk mencapai pencadangan tingkat tabel

untuk mengekspor:

bcp.exe "select * from [MyDatabase].dbo.Customer " queryout "Customer.bcp" -N -S localhost -T -E

untuk mengimpor:

bcp.exe [MyDatabase].dbo.Customer in "Customer.bcp" -N -S localhost -T -E -b 10000

seperti yang Anda lihat, Anda dapat mengekspor berdasarkan kueri apa pun, sehingga Anda bahkan dapat melakukan pencadangan tambahan dengan ini. Plus, ini bisa scriptable dibandingkan dengan metode lain yang disebutkan di sini yang menggunakan SSMS.

kenwarner
sumber
1
Hanya satu kepala. Jika Anda hanya ingin menyalin tabel menggunakan nama alih-alih kueri pemilihan, ubah skrip untuk menggunakan KELUAR sebagai pengganti QUERYOUT.
Valamas
45

Berikut langkah-langkah yang Anda butuhkan. Step5 penting jika Anda menginginkan data. Langkah 2 adalah tempat Anda dapat memilih tabel individual.

Versi EDIT tumpukan tidak cukup dapat dibaca ... berikut adalah gambar ukuran penuh http://i.imgur.com/y6ZCL.jpg

Berikut langkah-langkah dari jawaban John Sansom

Alex C
sumber
SSMS apa yang Anda gunakan @Alex C? Dalam SSMS2005 saya, wizard saya berbeda dengan milik Anda.
KirdApe
Maaf, sudah bertahun-tahun sejak saya menjawab ini. Saya berasumsi saya mungkin menggunakan 2008. Saya baru saja memeriksa wizard saya sekarang dan Anda tidak lagi harus KLIK lanjutan, tetapi seluruh daftar dari frame 5 (di atas) muncul sebagai salah satu halaman wizard. Selain itu, opsi STRUKTUR dan DATA telah dipecah menjadi opsi BENAR / SALAH untuk masing-masing opsi. Beri tahu saya jika ada hal lain yang bisa saya lakukan untuk membantu.
Alex C
19

Anda dapat menjalankan kueri di bawah ini untuk mengambil cadangan dari tabel yang ada yang akan membuat tabel baru dengan struktur yang ada dari tabel lama bersama dengan datanya.

select * into newtablename from oldtablename

Untuk menyalin hanya struktur tabel, gunakan kueri di bawah ini.

select * into newtablename from oldtablename where 1 = 2
Haripriya
sumber
7

Ini mirip dengan solusi qntmfred , tetapi menggunakan tabel dump langsung. Opsi ini sedikit lebih cepat (lihat dokumen BCP ):

untuk mengekspor:

bcp "[MyDatabase].dbo.Customer " out "Customer.bcp" -N -S localhost -T -E

untuk mengimpor:

bcp [MyDatabase].dbo.Customer in "Customer.bcp" -N -S localhost -T -E -b 10000
Diego
sumber
1
Apakah ini termasuk kendala?
pengguna3071284
4

Jika Anda mencari sesuatu seperti MySQL DUMP , maka kabar baiknya: SQL Server 2008 Management Studio menambahkan kemampuan itu.

Di SSMS, cukup klik kanan pada DB yang dimaksud dan pilih Tasks> Generate Scripts . Kemudian di halaman ke-2 dari wizard opsi, pastikan untuk memilih bahwa Anda juga ingin datanya ditulis , dan itu akan menghasilkan berapa jumlah DUMPfile untuk Anda.

Michael K. Campbell
sumber
3

Buat grup file baru, letakkan tabel ini di atasnya, dan buat cadangan filegroup ini saja.

Konstantin Tarkus
sumber
Apakah ini termasuk kendala?
pengguna3071284
2

Anda dapat menggunakan Database Publishing Wizard gratis dari Microsoft untuk menghasilkan file teks dengan skrip SQL (CREATE TABLE dan INSERT INTO).

Anda dapat membuat file seperti itu untuk satu tabel, dan Anda dapat "memulihkan" tabel lengkap termasuk datanya hanya dengan menjalankan skrip SQL.

Christian Specht
sumber
+1 Untuk semua orang yang terbiasa dengan skrip SQL, ini adalah opsi yang Anda cari. Hapus centang pada "Skrip semua objek dalam database yang dipilih" untuk memilih tabel individu. Tangkapan layar: products.secureserver.net/products/hosting/…
lepe
2

Saya tidak tahu, apakah akan cocok dengan masalah yang dijelaskan di sini. Saya harus mengambil cadangan inkremental meja! (Hanya data baru yang dimasukkan yang harus disalin). Saya dulu mendesain paket DTS dimana.

  1. Saya mengambil catatan baru (berdasarkan kolom 'status') dan mentransfer data ke tujuan. (Melalui 'Transform Data Task')

  2. Lalu saya baru saja memperbarui kolom 'status'. (Melalui 'Jalankan Tugas SQL')

Saya harus memperbaiki 'alur kerja' dengan benar.

azmnoman.dll
sumber
2

Gunakan Panduan Impor dan Ekspor SQL Server.

  1. ssms
  2. Buka Mesin Database
  3. Alt. klik database yang berisi tabel untuk Ekspor
  4. Pilih "Tasks"
  5. Pilih "Ekspor Data ..."
  6. Ikuti Wizard
EndUzr
sumber
1

Setiap model pemulihan memungkinkan Anda mencadangkan seluruh atau sebagian database SQL Server atau file individual atau grup file dari database. Pencadangan tingkat tabel tidak dapat dibuat .

Dari: Ikhtisar Pencadangan (SQL Server)

Mitch Wheat
sumber
0

Anda mungkin memiliki dua opsi, karena SQL Server tidak mendukung pencadangan tabel. Keduanya akan dimulai dengan pembuatan skrip tabel. Kemudian Anda dapat menggunakan opsi Tabel Skrip - INSERT yang akan menghasilkan banyak pernyataan penyisipan, atau Anda dapat menggunakan layanan Integrasi (DTS dengan 2000) atau serupa untuk mengekspor data sebagai CSV atau serupa.

Miles D
sumber
0

Jika Anda ingin memulihkan tabel setelah seseorang keliru menghapus baris darinya, Anda mungkin bisa melihat snapshot database. Anda dapat memulihkan tabel dengan mudah (atau bagian dari baris) dari snapshot. Lihat http://msdn.microsoft.com/en-us/library/ms175158.aspx

SPE109
sumber
0

Aplikasi gratis bernama SqlTableZip akan menyelesaikan pekerjaan. Pada dasarnya, Anda menulis apa saja kueri (yang, tentu saja juga dapat [pilih * dari tabel]) dan aplikasi membuat file terkompresi dengan semua data, yang dapat dipulihkan nanti.

Tautan: http://www.doccolabs.com/products_sqltablezip.html

asapir
sumber
0

Handy Backup secara otomatis membuat file dump dari MS SQL Server, termasuk MSSQL 2005/2008. Sampah ini adalah file biner tingkat tabel, berisi salinan persis dari konten database tertentu.

Untuk membuat dump sederhana dengan Handy Backup, ikuti instruksi selanjutnya:

  1. Instal Handy Backup dan buat tugas backup baru.
  2. Pilih "MSSQL" pada Langkah 2 sebagai sumber data. Di jendela baru, tandai database untuk dicadangkan.
  3. Pilih di antara berbagai tujuan tempat Anda akan menyimpan cadangan Anda.
  4. Pada Langkah 4, pilih opsi cadangan "Penuh". Siapkan stempel waktu jika Anda membutuhkannya.
  5. Lewati Langkah 5 kecuali jika Anda perlu mengompres atau mengenkripsi file dump yang dihasilkan.
  6. Pada langkah 6, atur jadwal tugas untuk membuat dump secara berkala (jika tidak, jalankan tugas secara manual).
  7. Sekali lagi, lewati Langkah 7, dan beri nama tugas Anda pada Langkah 8. Anda telah menyelesaikan tugas!

Sekarang jalankan tugas baru Anda dengan mengklik ikon di depan namanya, atau tunggu waktu yang dijadwalkan. Handy Backup secara otomatis akan membuat dump untuk database Anda. Kemudian buka tujuan cadangan Anda. Anda akan menemukan folder (atau beberapa folder) dengan backup MS SQL Anda. Folder seperti itu akan berisi file dump tingkat tabel, yang terdiri dari beberapa tabel biner dan pengaturan yang dikompresi ke dalam satu ZIP.

Database Lainnya

Handy Backup dapat menyimpan dump untuk MySQL, MariaDB, PostgreSQL, Oracle, IBM DB2, Lotus Notes dan database SQL generik apa pun yang memiliki driver ODBC. Beberapa dari database ini memerlukan langkah tambahan untuk membuat koneksi antara DBMS dan Handy Backup.

Alat yang dijelaskan di atas sering membuang database SQL sebagai urutan perintah SQL tingkat tabel, membuat file ini siap untuk modifikasi manual apa pun yang Anda perlukan.

Mark Geek
sumber