sp_rename [ @objname = ] 'object_name' , [ @newname = ] 'new_name' [ , [ @objtype = ] 'object_type' ]
只能更改當前數據庫中的對象名稱或數據類型名稱。大多數系統數據類型和系統對象的名稱都不能更改。
每當重命名 PRIMARY KEY 或 UNIQUE 約束時,sp_rename 都會自動重命名關聯的索引。如果重命名的索引與 PRIMARY KEY 約束關聯,則 sp_rename 也會自動重命名該 PRIMARY KEY 約束。
sp_rename 可用於重命名主要和次要的 XML 索引。
重命名存儲過程、函數、視圖或觸發器將不會更改 sys.sql_modules 類別視圖的 definition 列中相應對象名的名稱。因此,我們建議不要使用 sp_rename 重命名這些對象類型。而是刪除對象,然後使用新名稱重新創建該對象。
重命名諸如表或列等對象將不會自動重命名對該對象的引用。您必須手動修改引用已重命名對象的任何對象。例如,如果您重命名表列,並且觸發器中引用了該列,則必須修改觸發器以反映新的列名。在重命名對象之前,使用 sys.sql_dependencIEs 列出該對象的依賴關系。
[ @objname = ] 'object_name'
用戶對象或數據類型的當前限定或非限定名稱。如果要重命名的對象是表中的列,則 object_name 的格式必須是 table.column。如果要重命名的對象是索引,則 object_name 的格式必須是 table.index。
只有在指定了合法的對象時才必須使用引號。如果提供了完全限定名稱,包括數據庫名稱,則該數據庫名稱必須是當前數據庫的名稱。object_name 的數據類型為 nvarchar(776),無默認值。
[ @newname = ] 'new_name'
指定對象的新名稱。new_name 必須是名稱的一部分,並且必須遵循標識符的規則。newname 的數據類型為 sysname,無默認值。