SQL SERVER 中 sp_rename 用法


轉自:http://www.cnblogs.com/no7dw/archive/2010/03/04/1678287.html 

因需求變更要改表的列名,平常都是跑到Enterprise manager中選取服務器->數據庫->表,然后修改表,這樣太麻煩了,查了一下,可以用script搞定,代碼如下: 

EXEC sp_rename '表名.[原列名]', '新列名', 'column' 

 
Transact-SQL 參考 

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 也會自動重命名主鍵。 

重要 

重命名存儲過程和視圖后,請清空過程高速緩存以確保所有相關的存儲過程和視圖都重新編譯。 
由於存儲過程和視圖都不存儲數據,所以這兩種對象均可快速刪除和重建。重命名文本對象時,要獲得最佳結果,應刪除並使用其新名稱重新創建對象。 

權限 

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' 

請參見 

復制代碼
ALTER TABLE 

CREATE DEFAULT 

CREATE PROCEDURE 

CREATE RULE 

CREATE TABLE 

CREATE TRIGGER 

CREATE VIEW 

數據類型 

SETUSER 

sp_addtype 

sp_depends 

sp_renamedb 

系統存儲過程
復制代碼


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM