データベースのオブジェクト(テーブル名や列名、制約名など)を変更するサンプルを掲載します。また、スキーマを変更するサンプルも掲載します。
サンプルは SQL Server 2005 Developer Edition で確認しています。
1. データベースオブジェクトをリネームする
テーブル名やカラム名、インデックス名などを変更する場合は sp_rename ストアドプロシージャを使用します。sp_rename にはテーブル、インデックス、列、別名データ型、または Microsoft .NET Framework 共通言語ランタイム (CLR) ユーザー定義型を指定できます。
CREATE SCHEMA test CREATE TABLE test.SampleTable( TestID int IDENTITY(1,1) NOT NULL, TestName nvarchar(255) NULL ) ALTER TABLE test.SampleTable ADD CONSTRAINT PK_SampleTable PRIMARY KEY (TestID) -- カラムをリネームする EXEC sp_rename 'test.SampleTable.TestName', 'TestName2', 'Column' -- インデックス名をリネームする EXEC sp_rename 'test.SampleTable.PK_SampleTable', 'PK_SampleTable2', 'Index' -- テーブル名をリネームする EXEC sp_rename 'test.SampleTable', 'SampleTable2', 'Object'
データベース名を変更する場合は、ALTER DATABASE MODIFY NAME ステートメントを使用してください。
2. スキーマを変更する
上記で作成したテーブルのスキーマを test から dbo に変更するサンプルです。ALTER SCHEMA [移動先スキーマ名] TRANSFER [移動前のテーブル] ステートメントを使用します。
-- スキーマをtestからdboに移動する ALTER SCHEMA dbo TRANSFER test.SampleTable2
3. まとめ
説明は以上です。誤り、指摘点があればご連絡ください。
さんのコメント: さんのコメント: