2017-12-07 14 views
1

既存のデータベースからデータを取り出すことなくデータベースを作成したい(スキーマのみ)。私は、SQL Server Management Studioを使用してこの目的のためのスクリプトを作成できますが、これを動的に実行するトランザクションSQLスクリプトが必要です。データなしで既存のデータベースからデータベースを作成するにはどうすればよいですか?

+0

[データのないSQL Server 2012のコピーデータベース]の可能な重複(https://stackoverflow.com/questions/21880974/sql-server-2012-copy-database - データなし)または[MS SQL 2008 - データなしでデータベースのコピーを作成する](https://stackoverflow.com/questions/3912221/ms-sql-2008-create-a-copy-of-the-データなしのデータベース)、おそらくより多くのデータが含まれます。それらがあなたの質問に答えない場合は、おそらく_ "これを動的に実行するSQLスクリプトが必要です"という意味のものを説明する必要があります。 –

+0

[こちら](こちら)(https://stackoverflow.com/questions/706664/generate-sql-create-scripts-for-existing-tables-with-query)および[ここ](https://stackoverflow.com)/questions/21547/in-sql-server-how-do-i-generate-table-for-a-given-table) – HoneyBadger

+0

あなたの再生HoneyBadgerをありがとうが、これは私が望むものではありません。プロシージャや関数のようなものが必要 – Nurlan

答えて

0

私はこれを行う必要がありました。これは簡単な作業ではなく、組み込みのスクリプティングツールが適しています。しかし、これをやらなければならない場合は、これが私が使用するアプローチです。

ステップ1 - テーブルを構築する - 使用してすべてのテーブルのカーソルをビルドします。各貫通

SELECT object_schema_name([object_id]), [name] 
FROM [sys].[objects] 
WHERE [type] IN (N'U') 
ORDER BY [name]; 

ステップをし、「* INTOを選択するために、動的SQLを構築..

..からステップ2 - プロシージャと関数を作成する -

SELECT [name] 
FROM [sys].[objects] 
WHERE [type] IN (N'P', N'TF', N'FN', N'IF') 
ORDER BY [name]; 

step thrオブジェクトを調べ、それぞれに "exec sp_helptext '。" "を実行してください。結果の行をCOALESCE文字列ビルダーを使用して連鎖させ、結果を実行します。ターゲットデータベースで結果を実行します。

+0

これは私が望むものではありません。あなたの助けをありがとう – Nurlan

関連する問題