是否可以在同一表中具有NVARCHAR(MAX)和VARBINAR(MAX)字段
-
30-09-2019 - |
题
我正在使用SQL Server 2008 R2。
我有一个表格,其中有几个字段,包括nvarchar(max)字段。
当我尝试添加一个新的Varbinary类型(MAX)的新字段时,我会收到一个错误消息:“不允许保存更改。您所做的更改需要删除和重新创建以下表”。
是否可以在同一表中具有NVARCHAR(MAX)和VARBINAR(MAX)字段?
解决此问题的唯一方法是创建一个具有新结构并传输数据的新表格?
解决方案
是的,有可能。
如果您看到此消息,则必须尝试将新列插入SSMS Table Designer中现有的列中的中间。将其添加到现有列的末端,然后不必完全重建表。
或只是执行
alter table YourTable add newcol varbinary(max) null
其他提示
是的,当然 - 您可能只有SSM中的新“安全”选项仍在启用(默认情况下):
那是不在的 Tools > Options
....
去 Tools | Options > Designers
并取消选中选项“防止需要重新创建的更改”选项
SQL Server不允许您以这种方式发展表,因为它无法动态地修改现有表的存储空间。如果要这样做,则必须创建一个带有新架构的新表格,并用原始表中的数据填充它。
不隶属于 StackOverflow