Câu trả lời:
Bạn không thể sử dụng BACKUP DATABASE
lệ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 TABLE
tậ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 DATA
với chỉ schema
, bạn phải chọn Advanced
trên tab đã đặt tùy chọn tập lệnh và trong GENERAL
phần đặt Types of data to script
lự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ợ.
Advanced
trên tab tùy chọn tập lệnh đã đặt và trong phần CHUNG, hãy đặt Types of data to script
lự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 đó.
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.
Đâ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
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
Đ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
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 DUMP
tệp cho bạn.
Tạo nhóm tệp mới, đặt bảng này trên đó và chỉ sao lưu nhóm tệp này.
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.
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.
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')
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'.
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 .
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ự.
BMC Recovery Manager (trước đây gọi là SQLBacktrack) cho phép khôi phục tại thời điểm các đối tượng riêng lẻ trong cơ sở dữ liệu (còn gọi là bảng). Nó không rẻ nhưng thực hiện một công việc tuyệt vời: http://www.bmc.com/products/proddocview/0,2832,19052_19429_70025639_147752,00.html
http://www.bmc.com/products/proddocview/0,2832,19052_19429_67883151_147636,00.html
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
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
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:
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.
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.