MSSQL: T-SQL – копирование базы

Автор: | 06/09/2016

sql-logo-no-version-250Задача – скопировать SQL базу с одного Microsoft SQL сервера – на другой.

Используем tsql клиент под Linux.

Подключаемся:

$ TDSVER=7.1 tsql -S NewSQLServer.database.windows.net -U username -P p@ssw0rd

Скопировать базу можно с помощью оператора CREATE DATABASE с аргументом AS COPY OF.

Что бы скопировать базу с удалённого сервера – указываем его перед именем базы:

1> CREATE DATABASE NewSQLDatabaseName AS COPY OF OldSQLServer.OldSQLDatabaseName
2> go

При копировании с удалённого сервера – его имя указывать надо не польностью, в виде OldSQLServer.database.windows.net, а только имя – OldSQLServer.

Для проверки статуса копирования – можно сделать выборку из колонки state_desc таблицы sys.databases:

1> select name, state_desc from sys.databases where name = 'NewSQLDatabaseName'
2> go
name    state_desc
JmStageCopyTestCMS      COPYING

И по завершению:

1> select name, state_desc from sys.databases where name = 'NewSQLDatabaseName';
2> go
name    state_desc
JmStageCopyTestCMS      ONLINE

Ссылки по теме

Copy an Azure SQL database using Transact-SQL