環境:SQLServer 2008 R2
問題:修改表的列名
解決:
在SQLServer中修改表的列 名,可以調用存儲過程sp_rename。
use Test;--使用數據庫 sp_rename 'd_s_t.avg_grade','avg_g','column'; --d_s_t是表名,avg_grade是原來的列名,avg_g是新的列名 --也可以這樣執行: -- exec sp_rename 'd_s_t.avg_grade','avg_g','column';
注意:
1.avg_g前面不要有表名 ,否則,更改後的列名為d_s_t. avg_g。
2. 更改成功後會有這樣一個警告:“注意: 更改對象名的任 一部分都可能會破壞腳本和存儲過程”。不用理會,這是正常的。
附參考資料:
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(成功)或非零數字(失敗)