日期:2014-05-18  浏览次数:20542 次

如何修改一个字段的数据类型
如果我想把一个字段类型变成另一种类型,如何用SQL办到,比如varchar(20)改为varchar(80),数据库用了一段时间之后经常会有这种变动,如何达到,关键是要保证原来的数据为会丢失。

------解决方案--------------------
alter table TableName alter column ColumnName varchar(80)
------解决方案--------------------
create table test(test1 varchar(20))

alter table test alter column test1 varchar(80)
------解决方案--------------------
学习一下!
------解决方案--------------------
看下联机帮助吧
------解决方案--------------------
alter table tablename alter columns fieldname varchar(20)
------解决方案--------------------
alter table TableName alter column ColumnName varchar(80)
------解决方案--------------------
alter table tablename alter column columnname varchar(80)
------解决方案--------------------
ALTER TABLE table_name
{ [ ALTER COLUMN column_name
{DROP DEFAULT
| SET DEFAULT constant_expression
| IDENTITY [ ( seed , increment ) ]
}
| ADD
{ < column_definition > | < table_constraint > } [ ,...n ]
| DROP
{ [ CONSTRAINT ] constraint_name
| COLUMN column }
] }

table_name
要修改的表的名称。

注意:
表名称必须符合标识符规则。table_name 在数据库中必须是唯一的。table_name 最多可包含 128 个字符。



ALTER COLUMN
指定要进行更改或修改的特定列。

column_name
表中列的名称。列名称必须符合标识符规则,并且在表中必须是唯一的。

data_type
指定列的数据类型。有关数据类型的详细信息,请参阅数据类型。

DEFAULT
指定在插入操作中没有显式提供值时为该列提供的值。除了 IDENTITY 属性定义的列之外,DEFAULT 定义可应用于任何列。删除表时将删除 DEFAULT 定义。只有常量值(例如字符串或日期函数)才可以作为默认值。

IDENTITY
指示新列是标识列。在为表添加新行时,Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) 将为列提供增量值。IDENTITY 属性只能分配给 int 或 bigint 列。

seed
向表中加载第一行时所使用的值。

increment
加到所加载的上一行的标识值上的增量值。

ADD
指定添加一个或多个列定义或表约束。

DROP { [CONSTRAINT] constraint_name| COLUMN column}
指定要从表中删除 constraint_name 或 column_name。

ROWGUIDCOL
指示新列是行全局唯一标识符列。每个表只有一个 uniqueidentifier 列可以指派为 ROWGUIDCOL 列。ROWGUIDCOL 属性只能分配给 uniqueidentifier 列。

ROWGUIDCOL 自动为插入到表中的新行生成值。

NULL | NOT NULL
指定列中是否允许空值的关键字。严格意义上来说,NULL 并不是约束,但可以使用与指定 NOT NULL 同样的方式指定。

CONSTRAINT
指示 PRIMARY KEY、UNIQUE 或 FOREIGN KEY 约束定义开始的可选关键字。约束是强制执行数据完整性并创建表及其列的特殊类型索引的特殊属性。

constraint_name
约束的名称。constraint_name 为可选参数,在数据库中必须是唯一的。如果没有指定 constraint_name,则 SQL Server Compact Edition 会生成约束名。

PRIMARY KEY
通过使用唯一的索引强制执行特定列的实体完整性的约束。每个表只能创建一个 PRIMARY KEY 约束。

UNIQUE
通过使用唯一的索引提供特定列的实体完整性的约束。UNIQUE 约束中的列可以为 NULL,但每一列只允许一个 NULL 值。一个表可以包含多个 UNIQUE 约束。

注意:
SQL Server Compact Edition 可以使用索引强制执行 PRIMARY KEY 和 UNIQUE 约束。我们建议您不要依赖于这种行为,也不要尝试修改由约束创建的任何索引。



FOREIGN KEY...REFERENCES
为列中的数据提供引用完整性的约束。FOREIGN KEY 约束要求列中的每个值都存在于所引用表的指定的列中。

ref_table
FOREIGN KEY 约束所引用的表的名称。

( ref_column [ ,... n] )
FOREIGN KEY 约束所引用的表中的一列或多列。

ON DELETE {CASCADE | NO ACTION |SET DEFAULT | SET NULL}
指定当创建的表中的行具有引用关系并且从父表中删除该行所引用的行时,要对该行采取的操作。默认设置为 NO ACTION。有关详细信息,请参阅本主题后面的“备注”部分。

ON UPDATE {CASCADE | NO ACTION | SET DEFAULT | SET NULL}
指定当创建的表中的行具有引用关系并且在父表中更新该行所引用的行时,要对该行采取的操作。默认设置为 NO ACTION。有关详细信息,请参阅本主题后面的“备注”部分。

column
用括号括起来的一列或多列,在表约束中指示这些列用在约束定义中。