程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> 更多數據庫知識 >> sql實現修改表字段名的方法詳解

sql實現修改表字段名的方法詳解

編輯:更多數據庫知識

sp_rename N'表名.字段名','新字段名','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、FOREIGN KEY、PRIMARY/UNIQUE KEY)、用戶表、視圖、存儲過程、觸發器和規則等對象。
USERDATATYPE 通過執行 sp_addtype 而添加的用戶定義數據類型。

返回代碼值
0(成功)或非零數字(失敗)

注釋
只能更改當前數據庫中的對象名稱或數據類型名稱。大多數系統數據類型和系統對象的名稱不能更改。

重命名視圖時,sysobjects 表中有關該視圖的信息將得到更新。重命名存儲過程時,sysobjects 表中有關該過程的信息將得到更新。

每當重命名 PRIMARY KEY 或 UNIQUE 約束時,sp_rename 都會自動為相關聯的索引重命名。如果重命名的索引與 PRIMARY KEY 約束相關聯,那麼 sp_rename 也會自動重命名主鍵。

重要 重命名存儲過程和視圖後,請清空過程高速緩存以確保所有相關的存儲過程和視圖都重新編譯。

重命名存儲過程、視圖或觸發器不會更改 syscomments 表中相應對象的名稱。由於原來的名稱將從 syscomments 表插入 CREATE 語句,因此這樣可能會導致為該對象生成腳本時出現問題。要獲得最佳結果,請不要重命名這些對象類型,而應該刪除並用新名稱重新創建對象。

權限
sysadmin 固定服務器角色成員、db_owner 和 db_ddladmin 固定數據庫角色成員或對象所有者可以執行 sp_rename。只有 sysadmin 和 dbcreator 固定服務器角色成員才能將"database"作為 object_type 來執行 sp_rename。

示例
A. 重命名表
下例將表 customers 重命名為 custs。

EXEC sp_rename 'customers', 'custs'

B. 重命名列
下例將表 customers 中的列 contact title 重命名為 title。

EXEC sp_rename 'customers.[contact title]', 'title', 'COLUMN'

重命名列:下例將表 customers 中的列 contact title 重命名為 title。

EXEC sp_rename 'customers.[contact title]', 'title', 'COLUMN'

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved