Saya ingin mengambil cadangan tabel tertentu yang tersedia di database saya dalam .bak
file, dan semua ini harus dilakukan menggunakan skrip T-SQL.
Saya ingin mengambil cadangan tabel tertentu yang tersedia di database saya dalam .bak
file, dan semua ini harus dilakukan menggunakan skrip T-SQL.
Jawaban:
Jenis cadangan tergantung pada Model Pemulihan SQL Server. Setiap model pemulihan memungkinkan Anda mencadangkan seluruh atau sebagian database SQL Server atau file individual atau grup-grup database. Pencadangan tingkat-tabel tidak dapat dibuat, tidak ada opsi seperti itu. Tetapi ada solusi untuk ini
Mengambil cadangan dari tabel SQL Server mungkin dalam SQL Server. Ada berbagai cara alternatif untuk membuat cadangan tabel di sql SQL Server
Di sini saya menjelaskan hanya istirahat pertama yang mungkin Anda ketahui
Metode 1 - Cadangkan tabel sql menggunakan BCP (BULK COPY PROGRAM)
Untuk mencadangkan tabel SQL bernama "Person.Contact", yang berada di SQL Server AdventureWorks, kita perlu menjalankan skrip berikut, yang
-- SQL Table Backup
-- Developed by DBATAG, www.DBATAG.com
DECLARE @table VARCHAR(128),
@file VARCHAR(255),
@cmd VARCHAR(512)
SET @table = 'AdventureWorks.Person.Contact' -- Table Name which you want to backup
SET @file = 'C:\MSSQL\Backup\' + @table + '_' + CONVERT(CHAR(8), GETDATE(), 112) -- Replace C:\MSSQL\Backup\ to destination dir where you want to place table data backup
+ '.dat'
SET @cmd = 'bcp ' + @table + ' out ' + @file + ' -n -T '
EXEC master..xp_cmdshell @cmd
KELUARAN
Catatan -
Atau , Anda dapat menjalankan BCP melalui command prompt dan ketik perintah berikut di command prompt, kedua operasi melakukan aktivitas yang sama, tapi saya suka metode yang disebutkan di atas karena itu simpan ketik dalam membuka prompt perintah dan ketik.
bcp AdventureWorks.Person.Contact out C:\MSSQL\Backup\AdventureWorks.Person.Contact_20120222.dat -n -T
Metode 1:
Jika Anda hanya peduli dengan data dalam tabel dan yang akan digunakan secara lokal dalam database dan server yang sama, Anda dapat menggunakan kueri di bawah ini untuk mengambil cadangan dari tabel yang dipilih:
SELECT * INTO newtable1
FROM originalTable1
--- Untuk tabel 2
SELECT * INTO newtable2
FROM originalTable2
dan seterusnya ... untuk n jumlah tabel
Pernyataan ini AKAN MENCIPTAKAN tabel yang disebut newtable1, newtable1, .. dengan demikian Anda tidak harus membuatnya sebelumnya.
Catatan * Metode ini mengambil cadangan cukup cepat tetapi kerugian utama adalah bahwa ia tidak membawa Kunci, Indeks dan Kendala tabel dan cadangan disimpan dalam database tidak di suatu tempat secara eksternal ke file
Metode 2:
Jika Anda ingin membuat cadangan tabel ke server lain untuk solusi pemulihan bencana atau pencegahan kehilangan data, maka Anda bisa membuat skrip tabel menggunakan opsi Generate Scripts dari Tasks.
Pertama, klik kanan pada database yang berisi tabel yang ingin Anda backup dan pilih Tugas -> Hasilkan Script
Pilih basis data Anda dari daftar yang tabel-tabelnya perlu dicadangkan
Layar selanjutnya yang muncul adalah Opsi Script.
Gulir ke bawah pada opsi skrip hingga Anda melihat Table / View Options. Kami ingin yang berikut ini benar: Periksa Kendala, Data Skrip, Kunci Asing, Kunci Utama, Pemicu, & Kunci Unik. (Atau Anda dapat memilih apa pun yang Anda butuhkan tentu saja). Pilih Berikutnya dan kami disajikan dengan Layar Pilih Objek Jenis
Pilih Tabel dan tekan berikutnya. Terakhir, pilih tabel atau tabel yang ingin Anda backup dan tekan berikutnya
Metode 3:
Anda dapat menggunakan utilitas bcp untuk cadangan tabel juga.
Anda tidak dapat membuat cadangan tabel tertentu ke .bak
file, Anda dapat mengekspornya ke csv atau skrip mereka atau gunakan bcp
untuk memasukkannya ke dalam file.
Apa yang dapat Anda lakukan jika Anda ingin membuat cadangan tabel tertentu (dan mereka selalu sama) adalah memindahkannya ke yang terpisah file group
dan membuat cadangan grup file itu.
Lihat Mencadangkan File dan Filegroup untuk dokumentasi.
Misalnya jika Anda ingin mencadangkan file atau filegroup tertentu menggunakan T-SQL, Anda dapat menggunakan (dari tautan)
--Back up the files in SalesGroup1.
BACKUP DATABASE Sales
FILEGROUP = 'SalesGroup1',
FILEGROUP = 'SalesGroup2'
TO DISK = 'C:\MySQLServer\Backups\Sales\SalesFiles.bck';
GO
dan
--Backup the files in the SalesGroup1 secondary filegroup.
BACKUP DATABASE Sales
FILE = 'SGrp1Fi2',
FILE = 'SGrp2Fi2'
TO DISK = 'G:\SQL Server Backups\Sales\SalesGroup1.bck';
GO
Membangun Metode 1 dari respons KASQLDBA:
Buat database terpisah untuk menyimpan salinan tabel yang didukung. Ubah kueri yang disediakan KASQLDBA sehingga Anda memilih dari tabel asli dan menyalin ke database alternatif.
SELECT * INTO MyNewDatabase.dbo.newtable1
FROM OriginalDatabase.dbo.originalTable1
--- For table 2
SELECT * INTO MyNewDatabase.dbo.newtable2
FROM OriginalDatabase.dbo.originalTable2
Anda bisa membuat skrip yang menjatuhkan tabel di database baru, kemudian jalankan perintah select ke perintah untuk setiap tabel yang diperlukan. Jika Anda ingin memiliki indeks dan objek lain yang tersedia, maka Anda bisa membangunnya di database baru Anda dan memotong tabel sebelum mengisinya kembali. Jika Anda lebih suka pemotongan, maka Anda harus menggunakan pernyataan insert sebagai ganti select into.
Opsi ini akan memberi Anda metode untuk membuat file .BAK. Anda cukup menjalankan perintah database cadangan setelah Anda mengisi tabel di database baru.
Menggunakan fitur ekspor massal SSMS, berikut adalah metode terbaik dan termudah yang disebutkan
Panduan impor dan ekspor SQL Server : Panduan impor dan ekspor SQL Server menyediakan antarmuka pengguna grafis ke paket SQL Server Integration Services (SSIS). Setelah dibuat paket dapat diotomatisasi, untuk dijalankan sesuai jadwal. Itu dapat lebih lanjut dikonfigurasi dan dimodifikasi dengan menggunakan SQL Server Data Tools (SSDT)
Untuk memulai, buka panduan Impor dan ekspor, klik kanan database dan pilih sub-menu Tugas -> perintah Ekspor data.
Metode lain adalah dengan menggunakan skrip / sproc: DumpDataFromTable.sql dari: https://github.com/Zindur/MSSQL-DumpTable/tree/master/Scripts
EXECUTE [dbo].[DumpDataFromTable] @SchemaName = 'dbo', @TableName = 'Table', @PathOut = 'c:\temp\Scripts'
Anda harus lewat: nama skema dan nama tabel, kemudian jalur output tempat skrip yang dibuat akan disimpan (folder catatan harus sudah dibuat / ada dan sql memiliki izin melihat komentar di sproc).
Dan jika Anda mau, Anda dapat menambahkan kondisi ke tabel (filter harus dimulai dengan DAN untuk saat ini)
Cadangkan satu tabel dengan datanya dari database di SQL Server 2008:
SELECT * INTO [dbo].[tbl_NewTable]
FROM [dbo].[tbl_OldTable]