Hầu hết các nhà phát triển cảm thấy không thoải mái với các tệp .bak được tạo bởi chức năng Backup của SQL Server, nhất là với các cơ sở dữ liệu không quá lớn. Với tập tin .bak còn gặp vấn đề không tương thích giữa các phiên bản SQL Server khác nhau khi chúng ta muốn khôi phục. Vì lý do này, đôi khi bạn có thể cần xuất cơ sở dữ liệu ở định dạng tập lệnh (.sql). Tuy nhiên, Không phải ai cũng biết cách xuất ra file sql với SQL Server Management Studio.
Trong bài này, chúng tôi sẽ hướng dẫn cách Export 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 tệp .sql từ cơ sở dữ liệu
SQL Server Management Studio cung cấp chức năng sinh ra các script sql từ cơ sở dữ liệu để tạo databse, các bảng, các stored procedure, các function, các view và các câu lệnh chèn (insert) 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 ra cấu trúc bảng và/hoặc dữ liệu để cung cấp 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 mặc định (hoặc với tài khoản kết nối mà bạn muốn truy cập):
Bước 2
Kết nối tới server thành công và chọn Database trong cửa sổ Object Explorer, trong ví dụ này là cơ sở dữ liệu my_database:
Bước 3
Kích chuột phải vào database này và chọn Tasks và rồi chọn Generate Scripts:
Bước 4
Hộp thoại Generate and Publish Scripts hiển thị ra, hãy xác định các bảng cơ sở dữ liệu mà bạn muốn Export, 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 Export, hãy tiến hành xác định xem bạn muốn 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ể kích 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, Export 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 xong:
Và sau khi hoàn thành, bạn có thể mở file script.sql, bạn sẽ nhìn 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 … …
Tôi là Nguyễn Văn Sỹ có 15 năm kinh nghiệm trong lĩnh vực thiết kế, thi công đồ nội thất; với niềm đam mê và yêu nghề tôi đã tạo ra những thiết kếtuyệt vời trong phòng khách, phòng bếp, phòng ngủ, sân vườn… Ngoài ra với khả năng nghiên cứu, tìm tòi học hỏi các kiến thức đời sống xã hội và sự kiện, tôi đã đưa ra những kiến thức bổ ích tại website nhaxinhplaza.vn. Hy vọng những kiến thức mà tôi chia sẻ này sẽ giúp ích cho bạn!