Home [SQL] SP_RENAME 重新命名 (變更資料表名稱、欄位名稱、預存程序)
Post
Cancel

[SQL] SP_RENAME 重新命名 (變更資料表名稱、欄位名稱、預存程序)

SP_RENAME 用於變更目前資料庫中使用者建立的物件名稱。 這個物件可以是資料表、索引、資料行(欄位)、預存程序。

變更物件名稱的任何部分,可能破壞指令碼和預存程序。 我們建議您不要使用此語句來重新命名預存程式、觸發程式、使用者定義函式或檢視;請改為卸載 物件,然後以新的名稱重新建立它。

語法

1
2
sp_rename [ @objname = ] 'object_name' , [ @newname = ] 'new_name'
          [ , [ @objtype = ] 'object_type' ]

object_type的值可以是columndatabaseindexobject

  • COLUMN 要重新命名的資料行。
  • DATABASE 使用者定義的資料庫。 重新命名資料庫時,需要此物件類型。
  • INDEX 使用者定義的索引。 使用統計資料重新命名索引,也會自動重新命名統計資料。
  • OBJECT 在 sys.objects 中 追蹤之類型的專案。 例如,OBJECT 可用來重新命名物件,包括條件約束(CHECK、FOREIGN KEY、PRIMARY/UNIQUE KEY)、使用者資料表和規則。
1
2
3
sp_rename 'old_table','new_table'  --變更資料表名稱
sp_rename 'table.old_column', 'new_column', 'column' --變更欄位名稱
sp_rename 'old_procedure', 'new_procedure', 'object' --變更預存程序名稱

變更資料表名稱

將名為old_table資料表,重新命名為new table

1
sp_rename 'old_table','new_table' 

變更欄位名稱

假如你有一個名為customer資料表,其中有一個名為old_column的欄位,你想要將該欄位重新命名為new table,就可以使用下面語法:

1
sp_rename 'customer.old_column', 'new_column', 'column'

變更預存程序名稱

假如你有一個名為old_procedure預存程序,你想要將該預存程序重新命名為new_procedure,可以使用下面語法:

1
sp_rename 'old_procedure', 'new_procedure', 'object'

範例

重命名資料表

將「顧客清單」的資料表名稱變更為「客戶清單」

1
2
--將「顧客清單」的資料表名稱變更為「客戶清單」
sp_rename '顧客清單', '客戶清單'

重命名欄位

再將「顧客ID」、「顧客名稱」欄位,重新命名為「客戶ID」、「客戶名稱」

1
2
3
--將「顧客ID」、「顧客名稱」欄位重新命名為「客戶ID」、「客戶名稱」
sp_rename '客戶清單.顧客ID', '客戶ID', 'column'
sp_rename '客戶清單.顧客名稱', '客戶名稱', 'column'

重命名預存程序

將名為GetCount的預存程序,重新命名為GetSum

1
sp_rename 'GetCount', 'GetSum','object'

MSDN - sp_rename (Transact-SQL)

This post is licensed under CC BY 4.0 by the author.