Sao lưu cấp bảng


Câu trả lời:


89

Bạn không thể sử dụng BACKUP DATABASElệnh để sao lưu một bảng, tất nhiên trừ khi bảng được đề cập được cấp phát cho chính bảng đó FILEGROUP.

Những gì bạn có thể làm, như bạn đã đề xuất là Xuất dữ liệu bảng sang tệp CSV. Bây giờ để có được định nghĩa về bảng của bạn, bạn có thể 'Viết ra' CREATE TABLEtập lệnh.

Bạn có thể thực hiện việc này trong SQL Server Management Studio, bằng cách:

nhấp chuột phải vào Cơ sở dữ liệu> Nhiệm vụ> Tạo Tập lệnh

Sau đó, bạn có thể chọn bảng mà bạn muốn viết kịch bản và cũng có thể chọn bao gồm bất kỳ đối tượng liên quan nào, chẳng hạn như các ràng buộc và chỉ mục.

để làm quen DATAvới chỉ schema, bạn phải chọn Advancedtrên tab đã đặt tùy chọn tập lệnh và trong GENERALphần đặt Types of data to scriptlựa chọnSchema and Data

Hy vọng điều này sẽ hữu ích nhưng vui lòng liên hệ trực tiếp với tôi nếu bạn cần thêm sự hỗ trợ.


'Trình hướng dẫn Xuất bản Cơ sở dữ liệu' sẽ tự động hóa các bước tôi đã vạch ra.
John Sansom

25
John, Đừng quên đề cập rằng để có được DỮ LIỆU cùng với giản đồ, bạn phải chọn Advancedtrên tab tùy chọn tập lệnh đã đặt và trong phần CHUNG, hãy đặt Types of data to scriptlựa chọn Schema and Data. Đó không phải là điều hiển nhiên trong lần đầu tiên tôi làm điều đó.
Alex C,

Mẹo của Alex rất quan trọng. Ngoài ra, có cách nào để tập lệnh này thay vì đi qua các menu trong SQL Server không?
sooprise

1
Bạn có thể đạt được điều này bằng cách sử dụng kết hợp PowerShell và SMO. Xem bài viết này từ Phil Factor như một hướng dẫn: simple-talk.com/sql/database-administration/...
John Sansom

@AlexC Cảm ơn bạn! Lưu lại cho tôi đau đầu :)
Simon Whitehead

55

Tôi đang sử dụng tiện ích sao chép hàng loạt để đạt được các bản sao lưu cấp bảng

xuất khẩu:

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

nhập khẩu:

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

như bạn có thể thấy, bạn có thể xuất dựa trên bất kỳ truy vấn nào, vì vậy bạn thậm chí có thể thực hiện sao lưu gia tăng với điều này. Thêm vào đó, nó có thể viết kịch bản trái ngược với các phương pháp khác được đề cập ở đây sử dụng SSMS.


1
Chỉ cần một cái nhìn lên. Nếu bạn chỉ muốn sao chép bảng bằng cách sử dụng tên thay vì một truy vấn chọn, hãy thay đổi tập lệnh để sử dụng OUT thay cho QUERYOUT.
Valamas

45

Đây là các bước bạn cần. Bước 5 là quan trọng nếu bạn muốn có dữ liệu. Bước 2 là nơi bạn có thể chọn từng bảng.

Phiên bản của ngăn xếp EDIT không thể đọc được ... đây là hình ảnh kích thước đầy đủ http://i.imgur.com/y6ZCL.jpg

Đây là các bước từ câu trả lời của John Sansom


Bạn đang sử dụng SSMS nào @Alex C? Trong SSMS2005 trình hướng dẫn của tôi khác với trình hướng dẫn của bạn.
KirdApe

Tôi xin lỗi, đã nhiều năm rồi tôi không trả lời câu hỏi này. Tôi cho rằng tôi có thể đang sử dụng 2008. Bây giờ tôi vừa kiểm tra trình hướng dẫn của mình và bạn không còn phải BẤM nâng cao nữa, mà thay vào đó toàn bộ danh sách từ khung 5 (ở trên) xuất hiện dưới dạng một trong các trang của trình hướng dẫn. Ngoài ra, tùy chọn CẤU TRÚC và DỮ LIỆU đã được chia thành các tùy chọn TRUE / FALSE cho từng tùy chọn riêng lẻ. Hãy cho tôi biết nếu tôi có thể giúp gì thêm.
Alex C

19

Bạn có thể chạy truy vấn dưới đây để tạo một bản sao lưu của bảng hiện có, điều này sẽ tạo một bảng mới với cấu trúc hiện có của bảng cũ cùng với dữ liệu.

select * into newtablename from oldtablename

Để chỉ sao chép cấu trúc bảng, hãy sử dụng truy vấn dưới đây.

select * into newtablename from oldtablename where 1 = 2

7

Điều này tương tự như giải pháp của qntmfred , nhưng sử dụng kết xuất bảng trực tiếp. Tùy chọn này nhanh hơn một chút (xem tài liệu BCP ):

xuất khẩu:

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

nhập khẩu:

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

1
Điều này có bao gồm các ràng buộc không?
user3071284

4

Nếu bạn đang tìm kiếm thứ gì đó giống như MySQL DUMP, thì tin tốt là SQL Server 2008 Management Studio đã thêm khả năng đó.

Trong SSMS, chỉ cần nhấp chuột phải vào DB được đề cập và chọn Nhiệm vụ> Tạo Tập lệnh . Sau đó, trong trang thứ 2 của trình hướng dẫn tùy chọn, hãy đảm bảo chọn rằng bạn cũng muốn dữ liệu được viết theo tập lệnh và nó sẽ tạo ra số lượng DUMPtệp cho bạn.



2

Bạn có thể sử dụng Trình hướng dẫn xuất bản cơ sở dữ liệu miễn phí của Microsoft để tạo tệp văn bản bằng các tập lệnh SQL (TẠO BẢNG và CHÈN VÀO).

Bạn có thể tạo một tệp như vậy cho một bảng và bạn có thể "khôi phục" bảng hoàn chỉnh bao gồm dữ liệu bằng cách chỉ cần chạy tập lệnh SQL.


+1 Đối với tất cả những người đã quen với tập lệnh SQL, đây là tùy chọn bạn đang tìm kiếm. Bỏ chọn "Tập lệnh cho tất cả các đối tượng trong cơ sở dữ liệu đã chọn" để chọn các bảng riêng lẻ. Ảnh chụp màn hình: products.secureserver.net/products/hosting/…
lepe

2

Tôi không biết, liệu nó có khớp với vấn đề được mô tả ở đây hay không. Tôi đã phải sao lưu gia tăng của bảng! (Chỉ dữ liệu được chèn mới nên được sao chép). Tôi đã từng thiết kế một gói DTS ở đâu.

  1. Tôi tìm nạp các bản ghi mới (trên cơ sở cột 'trạng thái') và chuyển dữ liệu đến đích. (Thông qua 'Nhiệm vụ chuyển đổi dữ liệu')

  2. Sau đó, tôi chỉ cập nhật cột 'trạng thái'. (Thông qua 'Thực thi tác vụ SQL')

Tôi đã phải sửa đúng 'quy trình làm việc'.


2

Sử dụng Trình hướng dẫn Nhập và Xuất SQL Server.

  1. thăm thẳm
  2. Mở Cơ sở dữ liệu
  3. Alt. bấm vào bảng chứa cơ sở dữ liệu để Xuất
  4. Chọn "Nhiệm vụ"
  5. Chọn "Xuất dữ liệu ..."
  6. Theo Pháp sư

1

Mọi mô hình khôi phục đều cho phép bạn sao lưu toàn bộ hoặc một phần cơ sở dữ liệu SQL Server hoặc các tệp hoặc nhóm tệp riêng lẻ của cơ sở dữ liệu. Không thể tạo bản sao lưu cấp bảng .

Từ: Tổng quan về sao lưu (SQL Server)


0

Bạn có thể có hai tùy chọn, vì SQL Server không hỗ trợ sao lưu bảng. Cả hai sẽ bắt đầu với việc tạo bảng theo kịch bản. Sau đó, bạn có thể sử dụng tùy chọn Script Table - INSERT sẽ tạo ra rất nhiều câu lệnh chèn, hoặc bạn có thể sử dụng dịch vụ Tích hợp (DTS với 2000) hoặc tương tự để xuất dữ liệu dưới dạng CSV hoặc tương tự.



0

Nếu bạn đang tìm cách khôi phục bảng sau khi ai đó xóa nhầm các hàng khỏi nó, bạn có thể xem ảnh chụp nhanh cơ sở dữ liệu. Bạn có thể khôi phục bảng khá dễ dàng (hoặc một tập hợp con của các hàng) từ ảnh chụp nhanh. Xem http://msdn.microsoft.com/en-us/library/ms175158.aspx


0

Một ứng dụng miễn phí có tên SqlTableZip sẽ hoàn thành công việc. Về cơ bản, bạn viết bất kỳ truy vấn (tất nhiên cũng có thể là [select * from table]) và ứng dụng tạo một tệp nén với tất cả dữ liệu, có thể được khôi phục sau.

Liên kết: http://www.doccolabs.com/products_sqltablezip.html


0

Handy Backup tự động tạo các tệp kết xuất từ ​​MS SQL Server, bao gồm MSSQL 2005/2008. Các kết xuất này là các tệp nhị phân cấp bảng, chứa các bản sao chính xác của nội dung cơ sở dữ liệu cụ thể.

Để tạo một kết xuất đơn giản với Handy Backup, vui lòng làm theo hướng dẫn tiếp theo:

  1. Cài đặt Handy Backup và tạo một tác vụ sao lưu mới.
  2. Chọn “MSSQL” trên Bước 2 làm nguồn dữ liệu. Trên một cửa sổ mới, hãy đánh dấu một cơ sở dữ liệu để sao lưu.
  3. Chọn trong số các điểm đến khác nhau nơi bạn sẽ lưu trữ các bản sao lưu của mình.
  4. Ở Bước 4, chọn tùy chọn sao lưu “Toàn bộ”. Thiết lập dấu thời gian nếu bạn cần.
  5. Bỏ qua Bước 5 trừ khi bạn cần nén hoặc mã hóa tệp kết xuất kết quả.
  6. Ở Bước 6, hãy thiết lập lịch trình cho một tác vụ để tạo kết xuất định kỳ (nếu không, hãy chạy tác vụ theo cách thủ công).
  7. Một lần nữa, bỏ qua Bước 7 và đặt tên cho nhiệm vụ của bạn ở Bước 8. Bạn đã hoàn thành nhiệm vụ!

Bây giờ, hãy chạy tác vụ mới của bạn bằng cách nhấp vào biểu tượng trước tên của nó hoặc đợi thời gian đã lên lịch. Handy Backup sẽ tự động tạo một kết xuất cho cơ sở dữ liệu của bạn. Sau đó, mở điểm đến sao lưu của bạn. Bạn sẽ tìm thấy một thư mục (hoặc một vài thư mục) với các bản sao lưu MS SQL của mình. Bất kỳ thư mục nào như vậy sẽ chứa tệp kết xuất cấp bảng, bao gồm một số bảng nhị phân và cài đặt được nén thành một tệp ZIP.

Cơ sở dữ liệu khác

Handy Backup có thể lưu kết xuất cho MySQL, MariaDB, PostgreSQL, Oracle, IBM DB2, Lotus Notes và bất kỳ cơ sở dữ liệu SQL chung nào có trình điều khiển ODBC. Một số cơ sở dữ liệu này yêu cầu các bước bổ sung để thiết lập kết nối giữa DBMS và Sao lưu tiện dụng.

Các công cụ được mô tả ở trên thường kết xuất cơ sở dữ liệu SQL dưới dạng chuỗi lệnh SQL cấp bảng, làm cho các tệp này sẵn sàng cho bất kỳ sửa đổi thủ công nào bạn cần.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.