2009-07-19 7 views
225

T-SQLを使用してテーブルを特定のスキーマに移動したいのですか?あなたが新しいスキーマにすべてのテーブルを移動したい場合、私はあなたが文書化されていないを使用することができ、SQL Server 2008のテーブルをT-SQLのスキーマに移動するには

+1

複数のテーブルを新しいスキーマに移動する必要がある場合は、[複数のテーブルの名前を変更する](http://stackoverflow.com/questions/10942901/renaming-multiple-tables)を参照してください。 – Tony

答えて

377
ALTER SCHEMA TargetSchema 
    TRANSFER SourceSchema.TableName; 

を使用していますsp_MSforeachtableストアドプロシージャを(そしていくつかの時点で廃止されるために、しかしそう!):

exec sp_MSforeachtable "ALTER SCHEMA TargetSchema TRANSFER ?" 

のRef .: ALTER SCHEMA

SQL 2008: How do I change db schema to dbo

12

ショートswer:

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 Schemaコレクション以外のもの)を使用している場合、Objectという名前は省略することができます。デフォルトです。

+0

なぜ私の正解のためのdownvote?受け入れられた答えと同じで、私が257アップフォースをすでに持っているかどうかを確認してください(私を含む)。 – DaveBoltman

+0

データがそのまま残っていることを確認するためのupvoteを持っていて、ただ血圧を保存しました... :) –

+3

@DaveBoltnman:あなたは答えを受け入れてから6年後に、 。 –

関連する問題