私は AWSからのこのチュートリアル を使用して、現在ラップトップ上にあるSQL ServerデータベースをAmazon Web Services RDSにエクスポートしています。特に、スクリプトの生成と公開ウィザードに続いて一括コピーを試みています。
生成されるスクリプトは次のように始まります。
CREATE DATABASE [Test]
CONTAINMENT = NONE
ON PRIMARY
( NAME = N'Datapump_Test', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\Datapump_Test.mdf' , SIZE = 1127424KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
LOG ON
( NAME = N'Datapump_Test_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\Datapump_Test_log.ldf' , SIZE = 2160960KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
GO
だから私の質問は、それらのパスは何ですか(つまり、C:\.....
行)、それらは私のラップトップ上のファイルを指していますか?その場合、RDS DBでこのスクリプトを実行するときに変更する必要がありますか?そこに残しておくとエラーが発生しますが、SSMSで手動でDBを作成し、これらの行をコメント化してスクリプトを実行すると、依然として多くのエラーが発生しますが、すべてのテーブルスキーマ、ユーザー、インデックスが作成されますなど...これは正しいアプローチですか?もしそうなら、私が上に投稿したリンクがこれについて言及していないのは奇妙に思えます。これは私が何か間違ったことをしたと思います。誰かがその問題について何か洞察を持っていますか?
生成されたスクリプトのパスは、データファイルとログファイルがラップトップ上にある場所です。
スクリプトをAmazon AWSにコピーして貼り付けると、データベースの作成時にファイルが作成される場所になります。
そのパスがAmazonインスタンスに存在しない場合、エラーが発生します。
行をコメント化すると、ファイルはインスタンスのデフォルトの場所に作成され、デフォルトのサイズとデータベース名から生成されたファイル名が付けられます。
CREATE DATABASE [Test]
CONTAINMENT = NONE
/* ON PRIMARY
( NAME = N'Datapump_Test', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\Datapump_Test.mdf' , SIZE = 1127424KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
LOG ON
( NAME = N'Datapump_Test_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\Datapump_Test_log.ldf' , SIZE = 2160960KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)*/
GO
他のエラーのいくつかが役割や権限などに関連していることを示すように、いくつかのオプションを変更できる詳細設定ダイアログがあり、スクリプトを実行するオブジェクト(ユーザーなど)を選択することもできます
ウィザードの概要については、このリンク 方法:スクリプトを生成する(SQL Server Management Studio) を参照してください。
たとえば、このページで「特定のオプションを選択」を選択した場合、「ユーザー」の選択を解除できます
次のページで詳細ボタンをクリックできます
これにより、多くのオプションを備えたダイアログが開き、権限やトリガーなどのスクリプトを作成できます。