Azure SQL Database で使える CREATE DATABASE AS COPY OF は、裏で geo レプリケーションが行われている。その geo レプリケーションが完了する前に、ソースのデータベースをリネームしようとすると、下記の例外が発生する。
The operation cannot be performed since the database 'データベース名' is in a replication relationship.
geo レプリケーション有効にした記憶ないし、Azure Portal で確認しても、やっぱりレプリカ存在しないし。データベースのコピーが同じ仕組みだったとはね。納得。
コピーの状態は sys.dm_operation_status で確認できる。このシステムビューに対して、下記のような SQL を間隔をあけて実行し、終わるまで監視するのが良さそう。
SELECT * FROM sys.dm_operation_status WHERE major_resource_id = N'データベース名' AND resource_type_desc = N'Database' AND operation = N'CREATE DATABASE COPY' AND state = 1;