Предотвращение изменения столбца версии строки (метки времени) ALTER TABLE COLUMN

Я хотел бы выполнить следующую команду без 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

Нет данных в MyTable, TextColumn изменить, запустив эту команду, все еще все 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

1 ответ

Решение

Я могу повторить вашу проблему и не знаю ни одного обходного пути. Одним из вариантов было бы полагаться на что-то другое, чем значения строк в целях синхронизации.

Другие вопросы по тегам