Object名を変更しよう~
その時に使うのが「sp_rename」!!
名前を変更できるのは、現在のデータベース内にあるオブジェクトまたはデータ型だけです。
ほとんどのシステム データ型およびシステム オブジェクトの名前は変更できません。
sp_rename では、PRIMARY KEY (主キー) または UNIQUE (一意) 制約の名前を変更した場合、
関連するインデックスの名前も自動的に変更されます。
sp_rename によって PRIMARY KEY 制約の名前も自動的に変更されます。
EXEC sp_rename '現在のオブジェクト名', '変更するオブジェクト名', 'オブジェクトタイプ'
GO
実習をしてみましょう~
「dbo.TestTable」というテーブルの名を「dbo.RealTable」に変更してみましょう。
EXEC sp_rename 'TestTable', 'RealTable', 'Object'
GO
これで変更されます!
オブジェクトタイプについては下記の表を参考してください。
名前を変更するオブジェクトの種類を指定します。 object_type のデータ型は varchar(13) で、既定値は NULL です。次のいずれかの値を指定できます。
value | 説明 |
---|
COLUMN | 名前を変更する列。 |
DATABASE | ユーザー定義のデータベース。 データベースの名前を変更する場合は、このオブジェクトの種類が必要です。 |
INDEX | ユーザー定義のインデックス。 統計のあるインデックスの名前を変更すると、統計の名前も自動的に変更されます。 |
OBJECT | sys.objects に記録される型の項目。 たとえば、OBJECT を使用して、制約 (CHECK、FOREIGN KEY、PRIMARY/UNIQUE KEY)、ユーザー テーブル、ルールなどのオブジェクトの名前を変更できます。 |
STATISTICS | ユーザーによって明示的に作成された統計、作成またはインデックスで暗黙的に作成された統計です。 インデックスの統計の名前を変更すると、インデックスの名前も自動的に変更されます。 |
USERDATATYPE | CREATE TYPE または sp_addtype を実行すると追加される CLR ユーザー定義型。 |