在我们的数据库中,有一个包含XML
数据类型列的表。该栏是强制性的 ( not null
),我需要将其设为非强制性 ( null
)。我写了一个类似的脚本:
alter table [SomeSchema].[SomeTable] alter column [SomeColumn] XML null
我需要编写/测试一个回滚脚本,所以我写了一个类似于:
alter table [SomeSchema].[SomeTable] alter column [SomeColumn] XML not null
初始语句正确执行。当我尝试测试/执行回滚时,出现以下错误:
消息 511,级别 16,状态 1,行 1
无法创建大小为 8082 的行,该行大于允许的最大行大小 8060。语句已终止。
这个问题似乎与row overflow相关,据说它不应该适用于 XML 类型(但似乎在这种情况下)。此问题仅在某些记录在表中时才会出现(即受数据影响),但它似乎与数据的大小没有直接关系。例如,一条记录的 XML 长度为 10,473 个字符并触发了此问题;另一条记录的 XML 长度为 159,072 个字符,并未触发该问题。
设置:
- 视窗 XP SP3
- SQL Server 2008 R2