Sql 更改表列以接受更多字符

Sql 更改表列以接受更多字符,sql,sql-server-2008,Sql,Sql Server 2008,Microsoft SQL Server 2008修改现有列以允许更多字符的命令是什么?如果我只是扩展它,这会对该列中以前的任何条目产生影响吗 我有一个URL列,我需要添加大约100个字符 ALTER TABLE [table] ALTER COLUMN [column] NVARCHAR(newsize) 而且增加大小不会影响数据 ALTER TABLE myTable ALTER COLUMN myColumn varchar(100) GO 这不会涉及数据丢失的风险,因为您正在扩展列的

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

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

ALTER TABLE [table] ALTER COLUMN [column] NVARCHAR(newsize)
而且增加大小不会影响数据

ALTER TABLE myTable ALTER COLUMN myColumn varchar(100)
GO

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

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

ALTER TABLE tab ALTER COLUMN c VARCHAR(200)

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

这并不总是最好的方法。如果由于某种原因更新失败,它通常会摇动所有外键。此外,如果您有FILESTREAM字段,它将删除FILESTREAM关联。一般来说,设计器是您最不希望尝试和使用以修改表的位置。顺便说一句,原因是设计器首先删除所有外键引用,然后删除旧表,然后在其位置创建新表,然后将数据放回,最后添加外键引用。如果失败,它不会回滚整个事务。就filestream而言,设计师对此一无所知。因此,当它开始重新创建表时,它忽略了这一部分。我发现设计器是学习如何编写DDL脚本的好方法。后来,我发现设计器是学习如何不编写DDL脚本的好方法。您还应该指定NULL或NOTNULL,以确保同时不更改可空性。