2017-10-24 10 views
0

SQL Serverデータベース全体(テーブル、ビュー、関数、プロシージャ、ユーザー)をスクリプト化したいと思います。完全なデータベーススキーマを適切な順序で作成するスクリプトを作成するにはどうすればよいですか?

私は管理スタジオの "スクリプトを生成する"機能を試しましたが、オブジェクトを悪い順番で作成します。作成順序は意味があります。たとえば、この作成順序は最小限の4テーブルのみのデータベース:

すべてのデータベースオブジェクトを依存関係の順番でリストする方法はありますか(最も依存度の低いものから最も依存度の高いものまで)。

私が達成しようとしているのは、バックアップファイルを使用せずに同じサーバーインスタンス上にデータベースのコピーを作成することです。

おかげ

+0

>>>データベースのコピーを作成する<<<だから、あなたが唯一のスキーマまたはスキーマ+をしたいですデータ? – sepupic

+1

SSISを使用してデータベース(データの有無にかかわらず)またはSSDT(SQL Serverプロジェクト)をコピーしてスキーマをエクスポートし、dacpacファイルを作成することもできます。 SSMSを使用してデータ層アプリケーションファイル(dacpac)をエクスポートし、コマンドラインまたはSSMSを使用して再展開することができます。 SSDTでは、スキーマを比較して同期を実行できます。サードパーティのツールもあります。 私の意見では、この質問は少し広いので、[dba.se]に意味をなさけるかもしれません。 – Pred

+0

@sepupic私はスキーマとデータが欲しいですが、私はスキーマのための堅実なスクリプトが作成された後にデータのクエリを記述したいと思います。 – LaBracca

答えて

0

あなたはsp_detach_dbを使用することができます「データベース名」、コピーしてファイルを貼り付ける(データやファイルのMDFとLDFを記録)し、それを再接続します。

コピーされたファイルは、別の名前でそれを再接続するために使用することができます。

CREATE DATABASE MyAdventureWorks 
    ON (FILENAME = 'C:\MySQLServer\AdventureWorks_Data.mdf'), 
    (FILENAME = 'C:\MySQLServer\AdventureWorks_Log.ldf') 
    FOR ATTACH; 

https://docs.microsoft.com/en-us/sql/relational-databases/databases/attach-a-database

+0

バックアップまたはmdf ldfファイルストリームファイルを使用したくありません。私は、表形式のデータを複製するためのスクリプトを探しています。 – LaBracca

関連する問題