我正在使用 SQL Server 2008 R2。
我有一个表,其中有几个字段,包括一个 nvarchar(max) 字段。
当我尝试添加 varbinary(max) 类型的新字段时,我收到一条错误消息:“不允许保存更改。您所做的更改需要删除并重新创建下表”。
是否可以在同一个表中有一个 nvarchar(max) 和一个 varbinar(max) 字段?
解决此问题的唯一方法是创建具有新结构的新表并传输数据吗?
我正在使用 SQL Server 2008 R2。
我有一个表,其中有几个字段,包括一个 nvarchar(max) 字段。
当我尝试添加 varbinary(max) 类型的新字段时,我收到一条错误消息:“不允许保存更改。您所做的更改需要删除并重新创建下表”。
是否可以在同一个表中有一个 nvarchar(max) 和一个 varbinar(max) 字段?
解决此问题的唯一方法是创建具有新结构的新表并传输数据吗?
是的,当然 - 你可能只是在 SSMS 中启用了这个新的“安全”选项(默认情况下它是打开的):
那是在Tools > Options
....之下
对的,这是可能的。
如果您看到此消息,则您必须尝试在 SSMS 表设计器中的现有列中间插入新列。将其添加到现有列的末尾,则不必完全重建表。
或者只是执行
alter table YourTable add newcol varbinary(max) null
转到Tools | Options > Designers
并取消选中“防止保存需要重新创建表的更改”选项
SQL Server 不允许您以这种方式发展表,因为它不能动态修改现有表的存储。如果要执行此操作,则必须使用新模式创建一个新表,并使用原始表中的数据填充它。