Generate DDL for a Microsoft SQL database
Introduction
Summary: This page explains how to generate DDL for a Microsoft SQL database using SQL Server Management Studio and how to generate DDL for Microsoft Azure SQL database using MySQL-scripter for use with the SQL Analyzer extension.
The official Microsoft documentation for scripting databases using the SQL Server Management Studio is here: https://docs.microsoft.com/en-us/sql/ssms/tutorials/scripting-ssms?view=sql-server-2017#script-databases .
Extraction examples
DDL extraction for a specific Microsoft SQL database
Connect to a server that’s running Microsoft SQL Server, expand the Databases node and then right-click Your Database > Tasks > Generate Scripts:
Select Next to open the Choose Objects page:
Select Script entire database and all database objects, then select Next:
Save scripts to a specific location, and click Advanced:
Ensure the Advanced options are as follows:
Select OK and click Next on the Summary page:
Finally click Finish to generate the script:
How to extract Microsoft Azure SQL DB
You generate DDL scripts by using mssql-scripter, see https://azure.microsoft.com/en-us/updates/mssqlscripter/ .
In the use guide you’ll find many examples : https://github.com/microsoft/mssql-scripter/blob/dev/doc/usage_guide.md , one of them shows how to script all to a file:
## script all the data to a file.
mssql-scripter -S localhost -d AdventureWorks -U sa --script-create --object-permissions --include-dependencies --exclude-headers --exclude-defaults --exclude-extended-properties > ./adventureworks-data.sql
The recommendation is to :
export only schema and not data, by default only schema is exported
keep only the create statements, do not export drop statements
–script-create
Script object CREATE statements.
do not generate object permissions
–object-permissions Generate object-level permissions.
do not check if object exist
–check-for-existence
Check that an object with the given name exists before
dropping or altering or that an object with the given
name does not exist before creating.
generate script for dependent objects
–include-dependencies
Generate script for the dependent objects for each
object scripted.
exclude headers, defaults and extended properties
–exclude-headers Exclude descriptive headers for each object scripted.
–exclude-defaults Do not script the default values.
–exclude-extended-properties Exclude extended properties for each
object scripted.