MS SQL Server 2008 R2で、古いデータベースのスキーマに基づいて新しいデータベースを作成するにはどうすればよいですか? SQL Server管理スタジオを使用しています。
データベースを右クリックし、Tasks
-> Generate Scripts
を選択します。
次に、必要なすべてのオブジェクトを選択するか、特定のオブジェクトのみを選択できます。
確認する必要があるスクリプトオプションがいくつかあります。
これらを新しいクエリウィンドウに作成するか、SQLファイルに保存できます。
このスクリプトは、非常に異なるデータベーススキーマ間で主要なWebサイトのデータベース移行を簡単に実行できるように作成されました。このスクリプトは、次のタスクを実行します。
バックアップダイアログを使用して、SSMS内からこのためのコードを取得することができます。丸いアイコンをクリックして、特定のシナリオのスクリプトを取得します。
宛先データベースを削除する前に、USE MASTER
コマンドを含めることを忘れないでください。単一のSSMSセッションでこのスクリプトを2回実行すると、このコマンドを含めないと致命的なエラーが発生します。ここでは、DROP DATABASE
を使用して、古いTargetDBを削除するだけでなく、そのファイルも削除します(これが機能するには、DBが「アクティブ」である必要があります)
バックアップのパート1で行った方法と同様に、SSMSダイアログを使用してこの初期復元スクリプトを生成することもできます。
ここではTruncateを使用しないでください-外部キーがある場合は機能しません
----------------------------------------------------------------------------------------
-- CREATE AN EMPTY COPY OF DATABASE
----------------------------------------------------------------------------------------
/* PART 1: Backup the good database */
BACKUP DATABASE [OriginalDB]
TO DISK = N'd:\backup.bak' WITH NOFORMAT, INIT,
NAME = N'OriginalDB-Full Database Backup', SKIP,
NOREWIND, NOUNLOAD, STATS = 33
GO
/* PART 2: If your destination database already exists, drop it */
USE master -- Make sure to include this -- it allows you to reuse script in same SSMS session
DROP DATABASE [migration]
/* PART 3: Restore the backup to the new location */
RESTORE DATABASE [TargetDB]
FROM DISK = N'D:\backup.bak' WITH FILE = 1,
MOVE N'OriginalDB' TO N'D:\sql data\TargetDB.mdf',
MOVE N'OriginalDB' TO N'C:\SQL Data\TargetDB_1.ldf',
NOUNLOAD, STATS = 33
GO
/* PART 4: Delete all tables' data in the migration testing target */
PRINT N'Clearing [TargetDB]'
USE [TargetDB]
EXEC sp_msforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all" -- disable all constraints
EXEC sp_MSForEachTable "DELETE FROM ?" -- delete data in all tables
exec sp_msforeachtable "ALTER TABLE ? WITH CHECK CHECK CONSTRAINT all" -- enable all constraints
----------------------------------------------------------------------------------------
-- BLANK DATABASE COPY CREATED, READY FOR TESTING
----------------------------------------------------------------------------------------
役立つスクリプトウィザードがあります。オブジェクトエクスプローラ->タスク->スクリプトの生成からデータベースを右クリックして試してください。データベースからエクスポートするオブジェクトを選択できます。
SQL Server Management Studioでは、オブジェクトをメニュークリックして選択することができます...
"Script [Object] As" ... "CREATE to"... "New Query Window"
作成するオブジェクトごとにスクリプトを作成する必要があります。
ロット全体を実行する場合は、データベースをメニュークリックして、選択します
「タスク」...「スクリプトを生成する」、ウィザードに従ってください 記事 :