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

問題を再現できますが、回避策はわかりません。1 つのオプションは、同期のために rowversion 値以外のものに依存することです。

于 2014-02-04T08:19:25.730 に答える