在SQL Server 2014中调整“主”父表列的大小的好方法

时间:2017-02-13 05:57:02

标签: sql-server

我有一个SQL Server 2014数据库,它基本上由一个主表和一些与它有外键关系的子表组成。他们又拥有自己的子桌。就SQL复杂性而言,这个数据库并不特别(也没有BLOB字段),并且它在磁盘上的大小小于50 MB。

但是,需要调整此主表中的一个列的大小,从nvarchar(500)到nvarchar(MAX)。我无法在SSMS中编辑它,并告知我需要删除并重新创建表。

我知道我可以使用SSMS中的Generate Scripts选项来重新创建和重新填充数据库,但这看起来有点矫枉过正?

我真的想关闭涉及该主表的任何约束,使用新列大小删除并重新创建它,从脚本重新加载其数据,然后再次打开这些约束。但是,我们现在正在研究我的SQL专业知识,我不确定如何最好地做这样有限的操作并且会喜欢建议?

1 个答案:

答案 0 :(得分:1)

只需使用ALTER TABLE命令调整列的大小:

ALTER TABLE MyTable
ALTER COLUMN MyColumn NVARCHAR(MAX) NULL -- Or NOT NULL, as required

根据更改列大小的文档:

  

您可以更改列的长度,精度或比例   在ALTER COLUMN中为列数据类型指定新大小   条款。如果列中存在数据,则新大小不能小   而不是数据的最大大小。