データベースのオブジェクト(テーブル名や列名、制約名など)を変更するサンプルを掲載します。また、スキーマを変更するサンプルも掲載します。

サンプルは 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. まとめ

説明は以上です。誤り、指摘点があればご連絡ください。