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