2017-02-13 47 views
0

我有一个SQL Server 2014数据库,主要由一个主表和一些与外键关系的子表组成。他们又拥有自己的子表。就SQL的复杂性而言,这个数据库没什么特别的(也没有BLOB字段),并且它在磁盘上的大小小于50 MB。在SQL Server 2014中调整“主”父表列的大小的好方法

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

我知道我可以在SSMS中使用Generate Scripts选项来重新创建和重新填充数据库,但这似乎是矫枉过正?

我真的想关闭涉及该主表的任何约束,使用新的列大小删除并重新创建它,从脚本重新加载其数据,然后再次打开这些约束。但是,我们现在正在陷入我的SQL专业知识的朦胧之中,我不确定如何才能做到这样的有限机动,并会喜欢建议?

回答

1

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

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

按照文件上更改列的大小:

您可以更改长度,精度,或规模由 指定ALTER COLUMN 子句中列数据类型的新大小。如果列中存在数据,则新数据的大小不能小于数据的最大数据大小 。

+0

我会成为一个枪的儿子,我被SSMS的警告所左右,我甚至没有尝试过。工作很好,谢谢。 – jkj2000