Hầu hết các nhà phát triển cảm thấy không thoải mái với việc tạo tệp .bak bằng chức năng Backup của SQL Server, đặc biệt là với các cơ sở dữ liệu không quá lớn. Cùng với đó, các tệp .bak cũng gặp vấn đề không tương thích giữa các phiên bản SQL Server khác nhau khi ta muốn khôi phục. Vì những lý do này, đôi khi ta cần xuất cơ sở dữ liệu dưới dạng tệp .sql. Tuy nhiên, không phải ai cũng biết cách xuất ra file sql bằng SQL Server Management Studio.
Trong bài viết này, chúng tôi sẽ hướng dẫn cách xuất cấu trúc và dữ liệu được lưu trữ trong Database của SQL Server thành file .sql một cách đơn giản nhất.
Tạo file .sql từ cơ sở dữ liệu
SQL Server Management Studio cung cấp chức năng tạo ra script sql từ cơ sở dữ liệu để tạo database, các bảng, stored procedure, function, view, và các câu lệnh chèn dữ liệu. Đối với lượng dữ liệu nhỏ hơn, phương pháp này khá hiệu quả để xuất cấu trúc bảng và/hoặc dữ liệu để phục vụ cho việc khôi phục Database.
Bước 1
Mở SSMS và truy cập công cụ cơ sở dữ liệu với chế độ xác thực Windows (hoặc với tài khoản kết nối mà bạn muốn sử dụng).
Bước 2
Kết nối tới server thành công và chọn Database trong cửa sổ Object Explorer, ví dụ: my_database.
Bước 3
Kích chuột phải vào database này và chọn Tasks, sau đó chọn Generate Scripts.
Bước 4
Hộp thoại Generate and Publish Scripts hiển thị ra, xác định các bảng cơ sở dữ liệu mà bạn muốn xuất, mặc định bạn có thể phát sinh script cho toàn bộ database và các object.
Bước 5
Sau khi xác nhận các bảng mà bạn muốn xuất, hãy xác định xem bạn muốn tạo một tệp cho mỗi bảng hay tất cả trong một tệp duy nhất. Bạn có thể nhấp vào nút Advanced để lựa chọn các tùy chọn nâng cao như xác định các kiểu dữ liệu cho script, tức là bạn muốn bao gồm cả dữ liệu hay chỉ cấu trúc của cơ sở dữ liệu.
Bước 6
Cuối cùng, quá trình xuất sẽ bắt đầu và bạn sẽ nhìn thấy thông báo thành công khi hoàn thành.
Sau khi hoàn thành, bạn có thể mở file script.sql và bạn sẽ thấy các câu lệnh SQL dạng như sau:
USE [master]
GO
/****** Object: Database [my_database] Script Date: 12-Mar-19 7:07:12 PM ******/
CREATE DATABASE [my_database] CONTAINMENT = NONE ON PRIMARY ( NAME = N'SICitas', FILENAME = N'C:Program FilesMicrosoft SQL ServerMSSQL14.SQLEXPRESSMSSQLDATAmy_database.mdf' , SIZE = 24512KB , MAXSIZE = UNLIMITED, FILEGROWTH = 10%) LOG ON ( NAME = N'SICitas_log', FILENAME = N'C:Program FilesMicrosoft SQL ServerMSSQL14.SQLEXPRESSMSSQLDATAmy_database_1.LDF' , SIZE = 32448KB , MAXSIZE = UNLIMITED, FILEGROWTH = 10%)
GO
ALTER DATABASE [my_database] SET COMPATIBILITY_LEVEL = 100
GO
IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
begin
EXEC [my_database].[dbo].[sp_fulltext_database] @action = 'disable'
end
GO
ALTER DATABASE [my_database] SET ANSI_NULL_DEFAULT OFF
GO
ALTER DATABASE [my_database] SET ANSI_NULLS OFF
GO
ALTER DATABASE [my_database] SET ANSI_PADDING OFF
GO
ALTER DATABASE [my_database] SET ANSI_WARNINGS OFF
GO
ALTER DATABASE [my_database] SET ARITHABORT OFF
GO
ALTER DATABASE [my_database] SET AUTO_CLOSE ON
GO
...
Dễ dàng nhất, phải không? Hãy thử xuất cơ sở dữ liệu của bạn ra tệp .sql và đảm bảo rằng bạn lưu trữ nó một cách an toàn để sử dụng trong trường hợp cần thiết.