2012-05-24 35 views
3

在这里,我试图改变一个表来改变列名称,但发生错误。改变表格来更改列名称错误

Alter table [dbo].[Users] 
CHANGE 
username UserName varchar(50), 
password PassWord varchar(50), 
state State int, 
name Name varchar(50), 
license License varchar(50), 
lansno LansNo varchar(50) , 
curcuit_no CurcuitNo varchar(50) , 
communism Communism varchar(100) , 
Olduid OldUid int , 
Is_hunter Is_Hunter bit , 
free_text [FreeText] text , 
country Country varchar(50) , 
curcuit Curcuit varchar(50) , 
license_territory LicenseTerritory [varchar](50) , 
forest Forest varchar(50) , 
association Association varchar(50), 
hunt_ar Hunt_Ar varchar(50) , 
area Area varchar(50) , 
contract Contract varchar(50) , 
radio_frequency RadioFrequency varchar(50) 
) 

发生此错误:

消息102,级别15,状态1,行2
附近有语法错误 '更改'。

所以..我在这里我想它ALTER TABLE改变旧的列名新列名的数据类型..但在这里,我收到错误

+0

http://msdn.microsoft.com/en-us/library/ms190273.aspx ..更改表语法 – maSTAShuFu

+0

或这一个。 http://www.sqlexamples.info/SQL/tsql_alter_names.htm – maSTAShuFu

+0

该命令是“ALTER TABLE ... ALTER COLUMN ...”,并允许您更改现有列的各种属性,如数据类型等。然而,这**不能**被用来改变列的名字。使用'EXECUTE sp_rename ....'来代替(详见Nalaka的回答)。所有这些SQL命令[完全记录在MSDN Books Online](http://msdn.microsoft.com/zh-cn/library/ms190273.aspx),可供任何人随时随地免费使用 - 使用它!** –

回答

3

尝试

EXEC sp_RENAME 'Users.username', 'UserName', 'Column' 
... 
0

有一个在语法

ALTER TABLE (Transact-SQL)

细看

如果我没有记错的话这是ALTER COLUMN,不CHANGE COLUMN

而且更应该可能有一个在这里读到

SQL SERVER – How to Rename a Column Name or Table Name

+0

这可以让你改变例如数据类型或现有列的“NULL与NOT NULL”属性 - 然而,您不能使用ALTER COLUMN更改列名称...... –

+0

@marc_s这就是为什么我添加了第二个链接/文章 –