SQL サーバー上にデータベースを作成し、winforms c# でフロント エンド ユーザー アプリケーションを作成しました。それは稼働しており、正常に動作していますが、クライアントから、新入社員のトレーニング用にテスト バージョンをセットアップするように依頼されました。これにより、「実際の」ライブ データベースに影響を与えずにトレーニング中にダミー データを入力できます。
データベースをインストールしたとき、すべてスクリプトを作成しましたが、その後状況が変わったため、すべてのテーブルを再度スクリプトで作成する必要は特にありません。
データベース (およびそのデータ) を同じサーバー上に別の名前で複製するための高速で便利な方法はありますか?
編集(トニー・ホプキンソンの投稿に続く)
私はここまで持っています
exec sp_addumpdevice 'Disk','MyDatabaseBackup',N'D:\MyDatabaseBackup'
Restore Database MyDatabase From MyDatabaseBackup With File = 1,
Move 'MyDatabase' To N'C:\Program Files\Microsoft SQL
Server\MSSQL11.SQLE\MSSQL\DATA\MyDatabaseTEST.mdf',
Move 'MyDatabase_Log' To N'C:\Program Files\Microsoft SQL
Server\MSSQL11.SQLE\MSSQL\DATA\MyDatabaseTEST_log.ldf',
NORECOVERY, NOUNLOAD, STATS = 10
RESTORE LOG [MyDatabaseTEST] FROM [MyDatabaseBackup] WITH FILE = 2, NOUNLOAD, STATS = 10
exec sp_dropdevice MyDatabaseBackup
しかし、次のエラーメッセージが表示されます
メッセージ 3234、レベル 16、状態 2、行 2 論理ファイル 'MyDatabase' はデータベース 'MyDatabase' の一部ではありません。論理ファイル名を一覧表示するには、RESTORE FILELISTONLY を使用します。メッセージ 3013、レベル 16、状態 1、行 2 RESTORE DATABASE が異常終了しています。メッセージ 3154、レベル 16、状態 4、行 6 バックアップ セットには、既存の 'MyDatabaseTEST' データベース以外のデータベースのバックアップが保持されています。メッセージ 3013、レベル 16、状態 1、行 6 RESTORE LOG が異常終了しています。デバイスがドロップされました。