首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ALTER TABLE将varchar列调整为更大的大小是不好的吗?

问使用ALTER TABLE将varchar列调整为更大的大小是不好的吗?
EN

Stack Overflow用户
提问于 2011-09-01 02:49:26
回答 4查看 7.2K关注 0票数 6

我需要简单地将列的大小从VARCHAR(36)调整为VARCHAR(40)。

如果您尝试使用SQL Server企业管理器,则它生成的脚本将有效地创建一个具有新结构的新表,将现有表中的所有数据插入其中,删除现有表,重命名新表,并重新创建任何索引。

如果您阅读了文档(以及包括SO在内的许多在线资源),则可以使用ALTER语句来调整大小。

ALTER是否会以任何方式影响数据的存储方式?索引?统计?我希望避免由于这种修改而影响性能,因为表可能会变得很大。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-09-01 02:53:22

只需使用ALTER TABLE。SSMS有时有点,呃,愚蠢

您需要删除并重新创建依赖约束(FK、unique、index、check等)

但是,这只是一个元数据更改,对于任何大小的表都是非常快速的(除非您还将NOT NULL更改为NULL或将varchar更改为nvarchar或类似的更改)

票数 13
EN

Stack Overflow用户

发布于 2011-09-01 02:53:02

不,ALTER TABLE (http://msdn.microsoft.com/de-de/library/ms190273.aspx)才是微软打算做这种改变的方式。

如果不向命令中添加额外的选项,索引或统计信息将不会受到损害。数据丢失的可能性也没有给出,因为您只是让列变得更大。一切都会好起来的。

票数 5
EN

Stack Overflow用户

发布于 2011-09-01 03:45:21

不应该因为您提出的原因而在生产环境中使用SSMS对数据库结构进行更改。它会破坏大表中的性能。ALTER table是首选的方法,它速度更快,并且可以在测试后将其作为更改存储在源代码管理中以推送到prod。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7261909

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档