是否可以在同一个表中包含nvarchar(max)和varbinar(max)字段

时间:2010-10-15 14:36:50

标签: sql-server sql-server-2008-r2 varcharmax varbinarymax

我使用的是SQL Server 2008 R2。

我有一个包含多个字段的表,包括nvarchar(max)字段。

当我尝试添加varbinary(max)类型的新字段时,我收到一条错误消息:“不允许保存更改。您所做的更改需要删除并重新创建以下表格。”

是否可以在同一个表中使用nvarchar(max)和varbinar(max)字段?

解决此问题的唯一方法是使用新结构创建新表并传输数据吗?

4 个答案:

答案 0 :(得分:4)

是的当然 - 您可能只是在SSMS中启用了这个新的“安全”选项(默认情况下它是ON):

alt text

那是在Tools > Options ....

之下

答案 1 :(得分:2)

是的,这是可能的。

如果您看到此消息,则必须尝试在SSMS表设计器的现有列中插入新列。将其添加到现有列的末尾,然后不必完全重建该表。

或者只是执行

alter table YourTable add newcol varbinary(max) null

答案 2 :(得分:2)

转到Tools | Options > Designers并取消选中“阻止保存需要重新创建表格的更改”选项

答案 3 :(得分:0)

SQL Server不允许您以这种方式进化表,因为它无法动态修改现有表的存储。如果要执行此操作,则必须使用新架构创建一个新表,并使用原始表中的数据填充该表。