---
# System prepended metadata

title: Tools used

---

# Tools used

## First party options

### sqlcmd


This is part of the official [mssql tools](https://hub.docker.com/_/microsoft-mssql-tools). 

#### Pros

* Can be scripted
* Can run arbitrary queries
* Can take input files (queries in plain test)

#### Cons

* Output is only in CSV format
* Doesn't output schema
* Can't change the destination table's name


### bcp

This is part of the official [mssql tools](https://hub.docker.com/_/microsoft-mssql-tools). 

#### Pros

* Made for large quantities of data
* Fast
* Can output schema

#### Cons

* Can't run arbitrary queries (the smallest unit is an entire table)
* Output is only **binary**
* Can't change the destination table's name

### mssql-scripter

Official project to work with sqlserver with a cross-platform tool

#### Pros

* Can be scripted
* Output is INSERT INTO sql statements
* Can output schema

#### Cons

* Project is dead
* Can't run arbitrary queries (the smallest unit is an entire table)
* Can't change the destination table's name

### SQL Server Management Studio

[SQL Server Management Studio (SSMS)](https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver15) is an integrated environment for managing any SQL infrastructure, from SQL Server to Azure SQL Database. SSMS provides tools to configure, monitor, and administer instances of SQL Server and databases. Use SSMS to deploy, monitor, and upgrade the data-tier components used by your applications, and build queries and scripts.

#### Pros

* Output is INSERT INTO sql statements
* Can output schema

#### Cons

* Can't run arbitrary queries (the smallest unit is an entire table)
* Can't change the destination table's name
* Windows only (might not be a problem)
* Can't be scheduled


#### Cons

* Couldn't get the tool to work
* The migration tools doesn't seem to allow renaming tables
* This tool doesn't work with MariaDB



## Third party options


### [mssql-cli](https://github.com/dbcli/mssql-cli)

It is a wrapper for `sqlcmd` with all of it's pros and cons

### [MySQL Workbench](https://www.mysql.com/products/workbench/)

Official tool from Oracle for MySQL

#### Pros

* Has a tool for migrating data from SQL Server to MySQL

#### Cons

* Couldn't get the tool to work
* The migration tools doesn't seem to allow renaming tables
* This tool doesn't work with MariaDB

### [AWS Database Migration Service](https://aws.amazon.com/dms/)

Offering from Amazon's AWS for this use case.

#### Pros

* Can migrate data from SQL Server to MySQL
* Has good [documentation](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)

#### Cons

* Doesn't seem to allow renaming output tables
* Has a lot of [limitations](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.MySQL.html#CHAP_Target.MySQL.Limitations)


## Suggested steps

In no particular order:

* Do a proper migration
* "sync" data between two instances of SQL Server