Câu trả lời:
Trong SSMS trong Object Explorer, nhấp chuột phải vào cơ sở dữ liệu, nhấp chuột phải và chọn "Nhiệm vụ" và sau đó "Tạo tập lệnh".
Điều này sẽ cho phép bạn tạo tập lệnh cho một hoặc tất cả các bảng và một trong các tùy chọn là "Dữ liệu tập lệnh". Nếu bạn đặt thành TRUE, trình hướng dẫn sẽ tạo tập lệnh với câu lệnh INSERT INTO () cho dữ liệu của bạn.
Nếu sử dụng 2008 R2 hoặc 2012, nó được gọi là cái gì khác, xem ảnh chụp màn hình bên dưới cái này
Chọn "Loại dữ liệu cho tập lệnh" có thể là "Chỉ dữ liệu", "Lược đồ và dữ liệu" hoặc "Chỉ lược đồ" - mặc định).
Và sau đó có Gói " SSMS Addin " trên Codeplex (bao gồm cả nguồn) hứa hẹn khá nhiều chức năng tương tự và một vài thứ nữa (như tìm nhanh, v.v.)
Vì lợi ích của việc mất trí quá rõ ràng, sau khi làm theo hướng dẫn của marc_s 'tại đây ...
Trong SSMS trong Object Explorer, nhấp chuột phải vào cơ sở dữ liệu, nhấp chuột phải và chọn "Nhiệm vụ" và sau đó "Tạo tập lệnh".
... Sau đó, tôi thấy một màn hình trình hướng dẫn với " Giới thiệu, Chọn đối tượng, Đặt tùy chọn tập lệnh, Tóm tắt và Lưu hoặc Xuất bản tập lệnh " với các nút trước, tiếp theo, kết thúc, hủy ở phía dưới.
Trên bước Đặt tùy chọn tập lệnh , bạn phải bấm "Nâng cao" để nhận trang có các tùy chọn. Sau đó, như Ghlouw đã đề cập, bây giờ bạn chọn "Loại dữ liệu cho tập lệnh" và lợi nhuận.
Nếu bạn sử dụng SQLServer 2008R2, bạn cần đặt Loại dữ liệu thành trường tập lệnh.
Nếu bạn đang chạy SQL Server 2008 R2, các tùy chọn tích hợp sẵn để thực hiện điều này trong SSMS như marc_s được mô tả ở trên đã thay đổi một chút. Thay vì chọn Script data = true
như thể hiện trong sơ đồ của mình, giờ đây có một tùy chọn mới được gọi "Types of data to script"
ngay phía trên nhóm "Tùy chọn bảng / Chế độ xem". Tại đây bạn chỉ có thể chọn dữ liệu tập lệnh, lược đồ và dữ liệu hoặc lược đồ. Hoạt động như một lá bùa.
Đối với những người tìm kiếm một phiên bản dòng lệnh, Microsoft đã phát hànhmssql-scripter
để làm điều này:
$ pip install mssql-scripter
# Generate DDL scripts for all database objects and DML scripts (INSERT statements)
# for all tables in the Adventureworks database and save the script files in
# the current directory
$ mssql-scripter -S localhost -d AdventureWorks -U sa --schema-and-data \
-f './' --file-per-object
Chỉ cần cập nhật ảnh chụp màn hình để giúp đỡ người khác khi tôi đang sử dụng phiên bản v18 mới hơn, vào khoảng năm 2019.
Tại đây bạn có thể chọn một số bảng nhất định hoặc đi với mặc định của tất cả. Đối với nhu cầu của riêng tôi, tôi chỉ chỉ một bảng.
Tiếp theo, có "Tùy chọn tập lệnh" nơi bạn có thể chọn tệp đầu ra, v.v. Như trong nhiều câu trả lời ở trên (một lần nữa, tôi chỉ phủ nhận các câu trả lời cũ cho Studio Server quản lý SQL v18.4 mới hơn) mà chúng tôi thực sự muốn nằm dưới nút "Nâng cao". Đối với mục đích riêng của tôi, tôi chỉ cần dữ liệu.
Cuối cùng, có một bản tóm tắt đánh giá trước khi thực hiện. Sau khi thực hiện một báo cáo về tình trạng hoạt động được hiển thị.
Bạn cũng có thể kiểm tra "Bổ trợ Scripter dữ liệu" cho SQL Server Management Studio 2008 từ:
http://www.mssql-vehicle-data.com/SSMS
Danh sách tính năng của họ:
Nó được phát triển trên SSMS 2008 và không được hỗ trợ trên phiên bản 2005 tại thời điểm này (sớm!)
Xuất dữ liệu nhanh chóng sang T-SQL cho cú pháp MSSQL và MySQL
CSV, TXT, XML cũng được hỗ trợ! Khai thác toàn bộ tiềm năng, sức mạnh và tốc độ mà SQL cung cấp.
Đừng đợi Access hoặc Excel thực hiện công việc viết kịch bản cho bạn mà có thể mất vài phút để thực hiện - hãy để SQL Server làm điều đó cho bạn và loại bỏ tất cả các công việc đoán ra khi xuất dữ liệu của bạn!
Tùy chỉnh đầu ra dữ liệu của bạn để sao lưu nhanh chóng, thao tác DDL và hơn thế nữa ...
Thay đổi tên bảng và lược đồ cơ sở dữ liệu theo nhu cầu của bạn, nhanh chóng và hiệu quả
Xuất tên cột hoặc đơn giản là tạo dữ liệu mà không cần tên.
Bạn có thể chọn các cột riêng lẻ để kịch bản.
Bạn có thể chọn các tập hợp con của dữ liệu (mệnh đề WHERE).
Bạn có thể chọn thứ tự dữ liệu (mệnh đề ORDER BY).
Tiện ích sao lưu tuyệt vời cho các hoạt động gỡ lỗi cơ sở dữ liệu grungy yêu cầu thao tác dữ liệu. Đừng để mất dữ liệu trong khi thử nghiệm. Thao tác dữ liệu trên bay!
Tất cả các bên trên là tốt đẹp, nhưng nếu bạn cần
Sau đó, mẹo sau đây là cách duy nhất.
Trước tiên hãy tìm hiểu cách tạo tệp spool hoặc xuất tập kết quả từ máy khách dòng lệnh db nguồn. Thứ hai tìm hiểu cách thực hiện các câu lệnh sql trên db đích.
Cuối cùng, tạo các câu lệnh chèn (và bất kỳ câu lệnh nào khác) cho cơ sở dữ liệu đích bằng cách chạy tập lệnh sql trên cơ sở dữ liệu nguồn. ví dụ
SELECT '-- SET the correct schema' FROM dual;
SELECT 'USE test;' FROM dual;
SELECT '-- DROP TABLE IF EXISTS' FROM dual;
SELECT 'IF OBJECT_ID(''table3'', ''U'') IS NOT NULL DROP TABLE dbo.table3;' FROM dual;
SELECT '-- create the table' FROM dual;
SELECT 'CREATE TABLE table3 (column1 VARCHAR(10), column2 VARCHAR(10));' FROM dual;
SELECT 'INSERT INTO table3 (column1, column2) VALUES (''', table1.column1, ''',''', table2.column2, ''');' FROM table1 JOIN table2 ON table2.COLUMN1 = table1.COLUMN1;
Ví dụ trên được tạo cho db của Oracle trong đó việc sử dụng kép là cần thiết cho các lựa chọn không có bảng.
Tập kết quả sẽ chứa tập lệnh cho db đích.
Dưới đây là một ví dụ về việc tạo tập lệnh di chuyển dữ liệu bằng cách sử dụng một con trỏ để lặp lại bảng nguồn.
SET NOCOUNT ON;
DECLARE @out nvarchar(max) = ''
DECLARE @row nvarchar(1024)
DECLARE @first int = 1
DECLARE cur CURSOR FOR
SELECT '(' + CONVERT(CHAR(1),[Stage]) + ',''' + [Label] + ''')'
FROM CV_ORDER_STATUS
ORDER BY [Stage]
PRINT 'SET IDENTITY_INSERT dbo.CV_ORDER_STATUS ON'
PRINT 'GO'
PRINT 'INSERT INTO dbo.CV_ORDER_STATUS ([Stage],[Label]) VALUES';
OPEN cur
FETCH NEXT FROM cur
INTO @row
WHILE @@FETCH_STATUS = 0
BEGIN
IF @first = 1
SET @first = 0
ELSE
SET @out = @out + ',' + CHAR(13);
SET @out = @out + @row
FETCH NEXT FROM cur into @row
END
CLOSE cur
DEALLOCATE cur
PRINT @out
PRINT 'SET IDENTITY_INSERT dbo.CV_ORDER_STATUS OFF'
PRINT 'GO'
Sau khi tìm kiếm rất nhiều, đó là bức ảnh đẹp nhất của tôi:
Nếu bạn có nhiều dữ liệu và cần một tập lệnh nhỏ gọn và thanh lịch, hãy thử: Gói công cụ SSMS
Nó tạo ra một liên kết tất cả các câu lệnh chọn để chèn các mục vào bảng mục tiêu và xử lý các giao dịch khá tốt.