从SQL Server中的表更改属性数据大小

从SQL Server中的表更改属性数据大小,sql,sql-server,database-design,Sql,Sql Server,Database Design,所以我想做一件我认为很简单的事。我在数据库中有一个名为“Images”的表。它的“Description”属性的类型是nvarchar(50)。我只是想让它成为nvarchar(250)。每次我尝试时,它都会说它无法保存,因为某些表必须重新裁剪。我不能仅仅删除它(我想),因为它已经维护了数据,我不能丢失它 编辑:: 精确错误消息 “不允许保存更改。该 您所做的更改需要 以下表格将被删除和删除 重新创建。您已创建 对无法删除的表所做的更改 重新创建或启用该选项 防止保存需要的更改 要重新创建的表。

所以我想做一件我认为很简单的事。我在数据库中有一个名为“Images”的表。它的“Description”属性的类型是nvarchar(50)。我只是想让它成为nvarchar(250)。每次我尝试时,它都会说它无法保存,因为某些表必须重新裁剪。我不能仅仅删除它(我想),因为它已经维护了数据,我不能丢失它

编辑::

精确错误消息

“不允许保存更改。该 您所做的更改需要 以下表格将被删除和删除 重新创建。您已创建 对无法删除的表所做的更改 重新创建或启用该选项 防止保存需要的更改 要重新创建的表。”


我是否应该禁用“防止保存需要重新创建表的更改”并从中保存它。

是否有引用“说明”列的表?这将阻止您更改数据类型/长度。

您是从SSMS GUI执行此操作,还是使用alter table运行脚本进行更改?
如果您是通过设计器完成的,我相信它会创建另一个表,删除原始表并重命名新表。如果该表处于PK/FK关系中。它不能把桌子掉下去。除非使用脚本,否则不要更改表。您还需要这些来正确地将它们放在源代码管理中。

请发布确切的错误消息我试图在设计视图中执行此操作。在MS SQL Server中右键单击一个表并选择“设计”,它将显示该表的所有列及其数据类型。表中确实有一列是PK,另一列是FK。不知道如何制作一个脚本来更改大小,我不完全理解。我不确定跟踪是什么,但假设我刚刚关闭了安全设置,当我更改其中一列的数据类型时,是否会丢失所有与此相关的数据?基本上,它会删除表及其包含的所有数据,然后重新创建它?不会丢失任何数据。查看情况的最佳方法是在表设计器中进行一些更改,右键单击并选择“生成更改脚本”。如果您对表做了一个小的更改,您将看到一个简单的“altertable”或其他内容。对于更复杂的更改,您将看到一个脚本,该脚本创建临时表,将现有表中的所有数据加载到临时表中,删除现有表,创建具有新结构的新替换表,然后将临时表中的数据插入新表。好的。我将在周一尝试它的工作,然后返回到评论/标记作为答案。尝试了,我得到了相同的错误消息。它不会生成任何脚本,只会给我在我的OPoh中更新的错误。对了,很抱歉-为了让这个实验正常工作,您需要关闭KB文章中描述的设置(“防止保存需要重新创建表的更改”位于选项窗口的designer选项卡上)。然后,您可以看到ssms生成的代码类型,以及您是否希望使用它或自己使用它。