2017-02-02 11 views
0

既存のテーブルを使用して複数のテーブルを作成する必要がありますが、新しいテーブルにはいくつかの異なる名前が必要です。例えば既存テーブルの参照を使用して複数のテーブルを作成し、異なる名前を使用

既存のテーブル名:

INT_Employees, 
INT_HumanResource, 
INT_Payroll, 
INT_Contacts etc.. 

それはのようになりますので、新しいテーブルには、接頭辞STGを持っている必要があります。

STG_Employees, 
STG_HumanResource, 
STG_Payroll, 
STG_Contacts etc.. 

注:周りに127テーブルと、私たちがあります接頭辞STG_を持つ新しい127テーブルを作成する必要があります。

ありがとうございました。

+0

データをコピーするか、テーブルの構造だけをコピーする必要がありますか? – pmbAustin

+0

こんにちはオースティン、ちょうどその構造 –

答えて

1

テーブル構造をコピーしようとしているだけの場合は、select intoをwhere述語で使用して、行が返されないようにすることができます。

select * into STG_Employees from INT_Employees where 1 = 0 

テーブルごとにこれを繰り返してください。

--EDIT--

ここでは代わりにループに頼るのこの作業を行うには、動的SQLを活用することができますの例です。 sys.tableを生成するためにsys.tablesを使用します。

declare @sql nvarchar(max) = '' 

select @sql = @sql + 'select * into ' + stuff(name, 1, 4, 'STG_') + ' from ' + name + ' where 1 = 0;' 
from sys.tables 
where name like 'INT[_]%' 

select @sql --once your comfortable the sql being generated is correct simply uncomment the next line 
--exec sp_executesql @sql 

プライマリキー、インデックス、外部キー、計算列などをしたい場合は、これらのスクリプトに別の方法を生成する必要がありますのでご注意ください。これは、テーブル構造を生成するだけです。

+0

これらすべてのテーブルにループ概念を使用できる方法はありますか? –

+0

なぜループを使用するのですか?あなたはすべてのテーブルのリストを持っていますか? –

+0

ええ、私たちはObject_ID –

関連する問題