代码之家  ›  专栏  ›  技术社区  ›  Shiraz Bhaiji

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

  •  0
  • Shiraz Bhaiji  · 技术社区  · 15 年前

    我正在使用SQL Server 2008 R2。

    我有一个表,它有几个字段,包括nvarchar(max)字段。

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

    在同一个表中可以有nvarchar(max)和varbinar(max)字段吗?

    4 回复  |  直到 15 年前
        1
  •  2
  •   Martin Smith    15 年前

    是的,这是可能的。

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

    或者直接执行

    alter table YourTable add newcol varbinary(max) null
    
        2
  •  4
  •   marc_s MisterSmith    15 年前

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

    alt text

    在下面 Tools > Options ....

        3
  •  2
  •   Brad    15 年前

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

        4
  •  0
  •   Michael Goldshteyn    15 年前

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