2010-02-17 27 views
3

对于Microsoft SQL Server 2008来说,更改现有列以允许更多字符的命令是什么?如果我只是扩展它,这会对列中的任何以前的条目产生影响吗?将表格列更改为接受更多字符

我有一个URL列,我需要添加约100个字符。

回答

9
ALTER TABLE [table] ALTER COLUMN [column] NVARCHAR(newsize) 

并且增加大小不会影响您的数据。

+3

您应该指定NULL或NOT NULL,以确保可空性不会同时更改。 –

2
ALTER TABLE myTable ALTER COLUMN myColumn varchar(100) 
GO 

这不会涉及丢失数据的风险,因为您正在扩大列的大小。

1
ALTER TABLE tab ALTER COLUMN c VARCHAR(200) 
0

您可以使用SQL Server Management Studio自行生成代码。只需修改设计器中的表格,使列更宽,然后单击“生成更改脚本”(在“表设计器”菜单下)。

根据您所做的更改,修改表的代码可能相当复杂。

+0

这并不总是最好的方法。如果由于某种原因导致更新失败,它通常会破坏你的所有外键。另外,如果您有FILESTREAM字段,它将删除文件流关联。一般来说,设计师是您想尝试用来修改表格的最后一个地方。 – NotMe

+0

顺便说一句,原因是设计师首先删除所有外键引用,然后删除旧表,然后在其位置创建一个新表,然后将数据放回,最后添加外键引用。如果失败,它不会回滚整个事务。就文件流而言,设计者根本不知道任何关于它的事情。因此,当它重新创建表格时,它会将该部分留出。 – NotMe

+1

我发现设计师是学习如何编写DDL脚本的好方法。后来,我发现设计者是学习如何*不*写DDL脚本的好方法。 –

相关问题