sp_rename
更改當前資料庫中使用者建立物件(如表、列或使用者定義資料型別)的名稱。
語法
sp_rename[@objname=]"object_name",
[@newname=]"new_name"
[,[@objtype=]"object_type"]
引數
[@objname=]"object_name"
是使用者物件(表、檢視、列、儲存過程、觸發器、預設值、資料庫、物件或規則)或資料型別的當前名稱。如果要重新命名的物件是表中的一列,那麼object_name必須為table.column形式。如果要重新命名的是索引,那麼object_name必須為table.index形式。object_name為nvarchar(776)型別,無預設值。
是指定物件的新名稱。new_name必須是名稱的一部分,並且要遵循識別符號的規則。newname是sysname型別,無預設值。
[@objtype=]"object_type"
是要重新命名的物件的型別。object_type為varchar(13)型別,其預設值為NULL,可取下列值。
值描述
COLUMN要重新命名的列。
DATABASE使用者定義的資料庫。要重新命名資料庫時需用此選項。
INDEX使用者定義的索引。
OBJECT在sysobjects中跟蹤的型別的專案。例如,OBJECT可用來重新命名約束(CHECK、FOREIGNKEY、PRIMARY/UNIQUEKEY)、使用者表、檢視、儲存過程、觸發器和規則等物件。
USERDATATYPE透過執行sp_addtype而新增的使用者定義資料型別。
返回程式碼值
0(成功)或非零數字(失敗)
註釋
只能更改當前資料庫中的物件名稱或資料型別名稱。大多數系統資料型別和系統物件的名稱不能更改。
重新命名檢視時,sysobjects表中有關該檢視的資訊將得到更新。重新命名儲存過程時,sysobjects表中有關該過程的資訊將得到更新。
每當重新命名PRIMARYKEY或UNIQUE約束時,sp_rename都會自動為相關聯的索引重新命名。如果重新命名的索引與PRIMARYKEY約束相關聯,那麼sp_rename也會自動重新命名主鍵。
重要重新命名儲存過程和檢視後,請清空過程快取記憶體以確保所有相關的儲存過程和檢視都重新編譯。
許可權
sysadmin固定伺服器角色成員、db_owner和db_ddladmin固定資料庫角色成員或物件所有者可以執行sp_rename。只有sysadmin和dbcreator固定伺服器角色成員才能將"database"作為object_type來執行sp_rename。
示例
A.重命名錶
下例將表customers重新命名為custs。
EXECsp_rename"customers","custs"
B.重新命名列
下例將表customers中的列contacttitle重新命名為title。
EXECsp_rename"customers.[contacttitle]","title","COLUMN"
sp_rename
更改當前資料庫中使用者建立物件(如表、列或使用者定義資料型別)的名稱。
語法
sp_rename[@objname=]"object_name",
[@newname=]"new_name"
[,[@objtype=]"object_type"]
引數
[@objname=]"object_name"
是使用者物件(表、檢視、列、儲存過程、觸發器、預設值、資料庫、物件或規則)或資料型別的當前名稱。如果要重新命名的物件是表中的一列,那麼object_name必須為table.column形式。如果要重新命名的是索引,那麼object_name必須為table.index形式。object_name為nvarchar(776)型別,無預設值。
[@newname=]"new_name"
是指定物件的新名稱。new_name必須是名稱的一部分,並且要遵循識別符號的規則。newname是sysname型別,無預設值。
[@objtype=]"object_type"
是要重新命名的物件的型別。object_type為varchar(13)型別,其預設值為NULL,可取下列值。
值描述
COLUMN要重新命名的列。
DATABASE使用者定義的資料庫。要重新命名資料庫時需用此選項。
INDEX使用者定義的索引。
OBJECT在sysobjects中跟蹤的型別的專案。例如,OBJECT可用來重新命名約束(CHECK、FOREIGNKEY、PRIMARY/UNIQUEKEY)、使用者表、檢視、儲存過程、觸發器和規則等物件。
USERDATATYPE透過執行sp_addtype而新增的使用者定義資料型別。
返回程式碼值
0(成功)或非零數字(失敗)
註釋
只能更改當前資料庫中的物件名稱或資料型別名稱。大多數系統資料型別和系統物件的名稱不能更改。
重新命名檢視時,sysobjects表中有關該檢視的資訊將得到更新。重新命名儲存過程時,sysobjects表中有關該過程的資訊將得到更新。
每當重新命名PRIMARYKEY或UNIQUE約束時,sp_rename都會自動為相關聯的索引重新命名。如果重新命名的索引與PRIMARYKEY約束相關聯,那麼sp_rename也會自動重新命名主鍵。
重要重新命名儲存過程和檢視後,請清空過程快取記憶體以確保所有相關的儲存過程和檢視都重新編譯。
許可權
sysadmin固定伺服器角色成員、db_owner和db_ddladmin固定資料庫角色成員或物件所有者可以執行sp_rename。只有sysadmin和dbcreator固定伺服器角色成員才能將"database"作為object_type來執行sp_rename。
示例
A.重命名錶
下例將表customers重新命名為custs。
EXECsp_rename"customers","custs"
B.重新命名列
下例將表customers中的列contacttitle重新命名為title。
EXECsp_rename"customers.[contacttitle]","title","COLUMN"