解決:
在SQLServer中修改表的列名,可以調用存儲過程sp_rename。
[sql]
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. 更改成功後會有這樣一個警告:「注意: 更改對象名的任一部分都可能會破壞腳本和存儲過程」。不用理會,這是正常的。
Ⅱ SQL如何更改表中的列名稱
代碼如下:
EXEC sp_rename '表名.[原列名]', '新列名', 'column'
sp_rename
更改當前資料庫中用戶創建對象(如表、列或用戶定義數據類型)的名稱。
語法
sp_rename [ @objname = ] 'object_name' ,
[ @newname = ] 'new_name'
[ , [ @objtype = ] 'object_type' ]
參數 www.2cto.com
[@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(成功)或非零數字(失敗)
Ⅲ SQL修改列名,說列名無效
哪有用中文做列名的啊... 列名只能用英文的 (studentName as '學生姓名' )是給列起別名...
Ⅳ SQL Server 中怎樣修改表中的列名
timestamptimestamp 這種數據類型表現自動生成的二進制數,確保這些數在資料庫中是唯一的。timestamp 一般用作給錶行加版本戳的機制。存儲大小為 8 位元組。注釋Transact-SQL timestamp 數據類型與在 SQL-92 標准中定義的 timestamp 數據類型不同。SQL-92 timestamp 數據類型等價於 Transact-SQL datetime 數據類型。
Microsoft® SQL Server™ 將來的版本可能會修改 Transact-SQL timestamp 數據類型的行為,使它與在標准中定義的行為一致。到那時,當前的 timestamp 數據類型將用 rowversion 數據類型替換。
Microsoft® SQL Server™ 2000 引入了 timestamp 數據類型的 rowversion 同義詞。在 DDL 語句中盡可能使用 rowversion 而不使用 timestamp。rowversion 受數據類型同義詞行為的制約。有關更多信息,請參見數據類型同義詞。
在 CREATE TABLE 或 ALTER TABLE 語句中,不必為 timestamp 數據類型提供列名:
CREATE TABLE ExampleTable (PriKey int PRIMARY KEY, timestamp)
如果沒有提供列名,SQL Server 將生成 timestamp 的列名。rowversion 數據類型同義詞不具有這樣的行為。指定 rowversion 時必須提供列名。
一個表只能有一個 timestamp 列。每次插入或更新包含 timestamp 列的行時,timestamp 列中的值均會更新。這一屬性使 timestamp 列不適合作為鍵使用,尤其是不能作為主鍵使用。對行的任何更新都會更改 timestamp 值,從而更改鍵值。如果該列屬於主鍵,那麼舊的鍵值將無效,進而引用該舊值的外鍵也將不再有效。如果該表在動態游標中引用,則所有更新均會更改游標中行的位置。如果該列屬於索引鍵,則對數據行的所有更新還將導致索引更新。
不可為空的 timestamp 列在語義上等價於 binary(8) 列。可為空的 timestamp 列在語義上等價於 varbinary(8) 列。