Предотвращение изменения столбца версии строки (метки времени) 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 ответ
Я могу повторить вашу проблему и не знаю ни одного обходного пути. Одним из вариантов было бы полагаться на что-то другое, чем значения строк в целях синхронизации.