web-dev-qa-db-ja.com

CREATE DATABASE AS COPYはAzureでは機能しません

T-SQLとMSSQLは初めてですが、Azure SQLデータベースをサーバー間でコピーする必要があります。

私がググったように here -CREATE DATABASE Database1_copy AS COPY OF server1.Database1;クエリですが、Ubuntu LinuxのVusial Studio Codeエディターでvscode-mssql拡張-エラーがあります:

メッセージ156、レベル15、状態1、行1:キーワード 'database'の近くの構文が正しくありません。

私の完全なクエリは次に見えます:

CREATE DATABASE Database1_copy AS COPY OF oldserver.database.windows.net.olddatabasenamehere;

追加のグーグルで同じ解決策が得られます( ここ は別の例です)。

ここで何が間違っているのですか?

Azureのリソース(Azure.Microsoft.com)で公開された最初のリンクであっても、AzureのSQLの実用的なソリューションであるとは限りません。

追伸アイデアは、現在のLive環境のコピーとして(ARMテンプレートを使用して)DEV環境のロールアウトを自動化し、Liveのデータベースのコピーとしてデータベースを作成することです。

5
setevoy

[〜#〜] bol [〜#〜] から:

AS COPY OF引数は完全修飾の一意のドメイン名をサポートしていませんです。つまり、サーバーの完全修飾ドメイン名がserverName.database.windows.netデータベースのコピー中はserverNameのみを使用してください。

したがって、コマンドは

CREATE DATABASE Database1_copy AS COPY OF oldserver.olddatabasenamehere;
6
Kin Shah

実行とは別に:

CREATE DATABASE mydbcopy AS COPY OF server1.mydb

これは知っておくべき素晴らしいコマンドです(Kbdavis07とKin Shahに感謝します)。

走ることも忘れないでください

CREATE USER [mydbcopy-developers] from external provider 
ALTER ROLE db_owner ADD MEMBER [mydbcopy-developers]

他のAADユーザーがデータベースにアクセスできるようにします。
SQLログインも孤立し、次のように修正できます。

ALTER USER mySQLlogin WITH Login = mySQLlogin

sQLログインがmySQLloginと呼ばれ、Masterデータベースにすでに存在する場合。
十分に見た場合、ここに情報があります: https://docs.Microsoft.com/en-us/Azure/sql-database/sql-database -copy