SQL 新增/修改 表字段列的类型等

王朝mssql·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

例如:

修改(列名前 要有column关键字)

ALTER TABLE [USER] ALTER column [NAME] varchar(35) null

新增

ALTER TABLE [USER] ADD [PRICE] numeric(18, 8) NULL DEFAULT 0

ALTER TABLE

通过更改、添加、除去列和约束,或者通过启用或禁用约束和触发器来更改表的定义。

语法

ALTER TABLE table

{ [ ALTER COLUMN column_name

{ new_data_type [ ( precision [ , scale ] ) ]

[ COLLATE < collation_name > ]

[ NULL | NOT NULL ]

| {ADD | DROP } ROWGUIDCOL }

]

| ADD

{ [ < column_definition > ]

| column_name AS computed_column_expression

} [ ,...n ]

| [ WITH CHECK | WITH NOCHECK ] ADD

{ < table_constraint > } [ ,...n ]

| DROP

{ [ CONSTRAINT ] constraint_name

| COLUMN column } [ ,...n ]

| { CHECK | NOCHECK } CONSTRAINT

{ ALL | constraint_name [ ,...n ] }

| { ENABLE | DISABLE } TRIGGER

{ ALL | trigger_name [ ,...n ] }

}

< column_definition > ::=

{ column_name data_type }

[ [ DEFAULT constant_expression ] [ WITH VALUES ]

| [ IDENTITY [ ( seed , increment ) [ NOT FOR REPLICATION ] ] ]

]

[ ROWGUIDCOL ]

[ COLLATE < collation_name > ]

[ < column_constraint > ] [ ...n ]

< column_constraint > ::=

[ CONSTRAINT constraint_name ]

{ [ NULL | NOT NULL ]

| [ { PRIMARY KEY | UNIQUE }

[ CLUSTERED | NONCLUSTERED ]

[ WITH FILLFACTOR = fillfactor ]

[ ON { filegroup | DEFAULT } ]

]

| [ [ FOREIGN KEY ]

REFERENCES ref_table [ ( ref_column ) ]

[ ON DELETE { CASCADE | NO ACTION } ]

[ ON UPDATE { CASCADE | NO ACTION } ]

[ NOT FOR REPLICATION ]

]

| CHECK [ NOT FOR REPLICATION ]

( logical_expression )

}

< table_constraint > ::=

[ CONSTRAINT constraint_name ]

{ [ { PRIMARY KEY | UNIQUE }

[ CLUSTERED | NONCLUSTERED ]

{ ( column [ ,...n ] ) }

[ WITH FILLFACTOR = fillfactor ]

[ ON { filegroup | DEFAULT } ]

]

| FOREIGN KEY

[ ( column [ ,...n ] ) ]

REFERENCES ref_table [ ( ref_column [ ,...n ] ) ]

[ ON DELETE { CASCADE | NO ACTION } ]

[ ON UPDATE { CASCADE | NO ACTION } ]

[ NOT FOR REPLICATION ]

| DEFAULT constant_expression

[ FOR column ] [ WITH VALUES ]

| CHECK [ NOT FOR REPLICATION ]

( search_conditions )

}

参数

table

是要更改的表的名称。如果表不在当前数据库中或者不属于当前用户所拥有,可以显式指定数据库和所有者。

ALTER COLUMN

指定要更改给定列。如果兼容级别是 65 或小于 65,将不允许使用 ALTER COLUMN。

要更改的列不能是:

数据类型为 text、image、ntext 或 timestamp 的列。

表的 ROWGUIDCOL 列。

计算列或用于计算列中的列。

被复制列。

用在索引中的列,除非该列数据类型是 varchar、nvarchar 或 varbinary,数据类型没有更改,而且新列大小等于或者大于旧列大小。

用在由 CREATE STATISTICS 语句创建的统计中的列。首先用 DROP STATISTICS 语句删除统计。由查询优化器自动生成的统计会由 ALTER COLUMN 自动除去。

用在 PRIMARY KEY 或 [FOREIGN KEY] REFERENCES 约束中的列。

用在 CHECK 或 UNIQUE 约束中的列,除非用在 CHECK 或 UNIQUE 约束中的可变长度列的长度允许更改。

有相关联的默认值的列,除非在不更改数据类型的情况下允许更改列的长度、精度或小数位数。

column_name

是要更改、添加或除去的列的名称。对于新列,如果数据类型为 timestamp,column_name 可以省略。对于 timestamp 数据类型的列,如果未指定 column_name,将使用名称 timestamp。

new_data_type

是要更改的列的新数据类型。要更改的列的 new_data_type 应符合下列准

[1] [2] [3] [4] 下一页

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航