2

我想在不更改Rowversion( timestamp) 列值的情况下运行以下命令。我想在 SQL Server 2008 R2 和 SQL Server CE 4.0 上实现这一点。

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

中的列MyTable

Version rowversion NOT NULL
TextColumn nvarchar(2000) NOT NULL

中没有数据MyTableTextColumn通过运行此命令进行更改,仍然rowversion 会更新所有值,这绝对不是预期的行为。

这是可能的还是有任何解决方法?

编辑:

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

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

编辑 3:作为 Microsoft Connect 上的错误填充: https ://connect.microsoft.com/SQLServer/feedback/details/816991/unexpected-sql-ce-4-0-rowversion-value-behavior-with-alter-column

4

1 回答 1

2

我能够重现您的问题,并且不知道任何解决方法。一种选择是依赖 rowversion 值以外的其他东西来进行同步。

于 2014-02-04T08:19:25.730 回答