2 回答
TA贡献1804条经验 获得超8个赞
你可以使用 ALTER TABLE 加 ALTER COLUMN 来更改指定的列数据类型,如:
CREATE TABLE
myTest (fId int,fName nvarchar(20) null)
创建一个表,名为:myTest,包含两个字段。如果此时你想要更改 fName 列,那么可以使用以下语句:
ALTER TABLE myTest
ALTER COLUMN fName nvarchar(30) null
这里要注意,如果指定的新的数据类型长度比原来的数据类型小,那么会出现数据丢失的情况,所以千万要注意,另外,不是所有的数据类型都可以更改,以下是SQL联机丛书中提到的注意事项:
要更改的列不能是:
·数据类型为 text、image、ntext 或 timestamp 的列。
·表的 ROWGUIDCOL 列。
·计算列或用于计算列中的列。
·被复制列。
·用在索引中的列,除非该列数据类型是 varchar、nvarchar 或 varbinary,数据类型没有更改,而且新列大小等于或者大于旧列大小。
·用在由 CREATE STATISTICS 语句创建的统计中的列。首先用 DROP STATISTICS 语句删除统计。由查询优化器自动生成的统计会由 ALTER COLUMN 自动除去。
·用在 PRIMARY KEY 或 [FOREIGN KEY] REFERENCES 约束中的列。
用在 CHECK 或 UNIQUE 约束中的列,除非用在 CHECK 或 UNIQUE 约束中的可变长度列的长度允许更改。
·有相关联的默认值的列,除非在不更改数据类型的情况下允许更改列的长度、精度或小数位数。
TA贡献1836条经验 获得超4个赞
如果长度足够可以使用
alter table 表名
alter column 字段名称 nvarchar(255)
如果长度不够则需要增加一个列,然后把源数据列进行转换长度后放入
添加回答
举报