更改表列以接受更多字符

5

如何在Microsoft SQL Server 2008中使用命令来更改现有列以允许更多字符?如果我只是扩展它,这会对该列中的任何先前条目产生影响吗?

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

5个回答

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

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


3
为确保空值性不被同时更改,您应该明确指定NULL或NOT NULL。 - Philip Kelley

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

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

1
ALTER TABLE tab ALTER COLUMN c VARCHAR(200)

0

这很简单:

ALTER TABLE <table_name> MODIFY <column_name> VARCHAR(100)

0
你可以使用SQL Server Management Studio生成代码来自行完成此操作。只需在设计器中修改表格,使列变宽,并单击“生成更改脚本”(在“表设计器”菜单下)即可。
根据您所做的更改,修改表格的代码可能会相当复杂。

这不总是最好的方式。如果由于某种原因更新失败,它通常会删除所有外键。而且,如果您有FILESTREAM字段,它将删除文件流关联。一般情况下,设计师是您不想尝试使用来修改表格的最后一个地方。 - NotMe
顺便说一句,设计师首先删除所有外键引用,然后删除旧表,接着在原地创建一个新表,再将数据放回去,最后添加外键引用。如果失败了,它不会回滚整个事务。至于文件流,设计师根本不知道它是什么。因此,在重新创建表时,它会忽略掉这部分内容。 - NotMe
1
我发现设计师是学习如何编写DDL脚本的好方法。后来,我发现设计师也是学习如何编写DDL脚本的好方法。 - Philip Kelley

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接