Sql 防止行版本(时间戳)列更改ALTER TABLE列

Sql 防止行版本(时间戳)列更改ALTER TABLE列,sql,sql-server-ce,alter-table,rowversion,Sql,Sql Server Ce,Alter Table,Rowversion,我想在不更改行版本(时间戳)列值的情况下运行以下命令。我希望在SQLServer2008R2和SQLServerCE4.0上实现这一点 ALTER TABLE MyTable ALTER COLUMN TextColumn nvarchar(4000) --original size 2000 MyTable中的列 Version rowversion NOT NULL TextColumn nvarchar(2000) NOT NULL MyTable中没有数据TextColumn通过运

我想在不更改
行版本
时间戳
)列值的情况下运行以下命令。我希望在SQLServer2008R2和SQLServerCE4.0上实现这一点

ALTER TABLE MyTable 
ALTER COLUMN TextColumn nvarchar(4000) --original size 2000
MyTable中的列

Version rowversion NOT NULL
TextColumn nvarchar(2000) NOT NULL
MyTable
中没有数据
TextColumn
通过运行此命令进行更改,所有
rowversion
值被更新,这绝对不是预期的行为

这是可能的还是有解决办法

编辑:

为了更清楚,我应该补充一点,我的目的是在同步环境中分发数据库结构更新,其中服务器是SQL server 2008 R2,同步客户端是SQL CE 4.0

编辑2: 此问题仅在SQL Compact上存在。在普通SQL Server上,它按预期工作

编辑3: 在Microsoft Connect上作为错误填充:

我可以重新编写您的问题,但不知道有什么解决方法。一种选择是依靠rowversion值以外的其他值进行同步。

您说所有值都已更改,但表中没有数据,这是哪一个??@ErikEJ的意思,当我将列大小从2000更改为4000时,文本列中的实际数据不会更改-列中的所有值保持不变,因为它不是nchar,而是ncharnvarchar@marc_s不是真的。表更改(作为真正的管理任务)通常并不意味着更改时间戳。此外,影响时间戳的ALTER TABLE可能会在复制/同步设置中引发问题:在这种设置中,ALTER TABLE通常在不同时间在相同(分布式)行的不同位置执行,这将导致同一行的TIMESTAMP列发生多次更改。这可能很难处理。