web-dev-qa-db-ja.com

T-SQLでテーブルをスキーマに移動する方法

T-SQLを使用してテーブルを特定のスキーマに移動したいですか? SQL Server 2008を使用しています。

252
Lukasz
ALTER SCHEMA TargetSchema 
    TRANSFER SourceSchema.TableName;

allテーブルを新しいスキーマに移動したい場合は、ドキュメント化されていない(そして、ある時点で非推奨になりますが、ありそうもない!)sp_MSforeachtable stored手順:

exec sp_MSforeachtable "ALTER SCHEMA TargetSchema TRANSFER ?"

参照: ALTER SCHEMA

SQL 2008:dbスキーマをdboに変更する方法

436
Mitch Wheat

短い答え:

ALTER SCHEMA new_schema TRANSFER old_schema.table_name

テーブル内のデータがそのまま残っていることを確認できますが、これはおそらく非常に重要です:)

MSDN docs による長い回答

ALTER SCHEMA schema_name 
   TRANSFER [ Object | Type | XML Schema Collection ] securable_name [;]

テーブル(または、TypeまたはXMLスキーマコレクション以外のもの)の場合、Wordオブジェクトはデフォルトであるため、Wordオブジェクトは省略できます。

17
DaveBoltman