首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 修改欄位名稱完整指南:sp_rename 詳細用法與注意事項

     編輯:關於SqlServer

核心語法

EXEC sp_rename '資料表名稱.舊欄位名稱', '新欄位名稱', 'COLUMN';

參數說明

參數說明
@objname格式:'Schema.Table.Column' 或 'Table.Column'
@newname新名稱,單一識別碼,不可含點號
@objtype'COLUMN' (欄位)、'INDEX'、'OBJECT' (資料表/檢視/程序)、'DATABASE'、'USERDATATYPE'

常見範例

-- 1. 重命名欄位
EXEC sp_rename 'Customers.[Contact Title]', 'Title', 'COLUMN';

-- 2. 重命名資料表
EXEC sp_rename 'Customers', 'Custs';  -- @objtype 預設 OBJECT

-- 3. 重命名索引
EXEC sp_rename 'TableName.IndexName', 'NewIndexName', 'INDEX';

-- 4. 重命名資料庫 (需單人模式)
EXEC sp_rename 'OldDB', 'NewDB', 'DATABASE';

重要限制與副作用

  • 預存程序/檢視/觸發器:重命名後不會更新 syscomments 內的定義文字,導致產生腳本時仍顯示舊名。建議刪除重建而非重命名。
  • 重命名 PK/UNIQUE 約束會自動同步重命名對應索引。
  • 重命名後需清空程序快取 (DBCC FREEPROCCACHE 或重啟服務) 確保重新編譯。
  • 系統物件、系統資料型別不可重命名。

權限需求

  • sysadmin、db_owner、db_ddladmin 或物件擁有者。
  • 重命名資料庫需 sysadmin + dbcreator。

最佳實務

  1. 僅對資料表、欄位、索引使用 sp_rename。
  2. 預存程序、檢視、觸發器:DROP + CREATE。
  3. 變更後同步更新應用程式碼、ORM 對應、文件。
  4. 生產環境變更前務必備份、測試。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved