2016-12-27 17 views
1

Мне нужно обновить запись в таблице с помощью ValidTimeStateFieldTypeUTCDateTime, но мне нужно обновить только поле строки. Если я использую этот код:Как не обновить поле ValidFrom - ValidTo?

while select forUpdate MyTable 
{ 
    MyTable.StringField = "Test"; 
    MyTable_UPD.validTimeStateUpdateMode(ValidTimeStateUpdate::EffectiveBased); 

    ttsbegin; 
    MyTable.update(); 
    ttscommit; 
} 

После команды MyTable.update(); изменить значение на столе MyTable.ValidFrom или MyTable.ValidTo. Мне нужно изменить только значение на StringField, мне не нужно менять значения на ValidFrom/To. Я хочу сохранить ту же информацию в поле UTC, и я не хочу создавать новую запись.

Если я использую MyTable.validTimeStateUpdateMode(ValidTimeStateUpdate::Correction);, то я получаю сообщение об ошибке.

Можно изменить только значение и ничего не трогать на поле ValueFrom/To?

Thanks,

enjoy!

+0

Что ошибка вы получаете при использовании ValidTimeStateUpdate :: Коррекция? – SShaheen

ответ

2

Если я не ошибаюсь, это не возможно изменить только ваш StringField, потому что в вашем таблице в Индексы вы определили DateTime поле.

Вы должны использовать validTimeStateUpdateMode функцию, в вашем использовании кода MyTable, а затем MyTable.update() но вы используете validTimeStateUpdateMode(ValidTimeStateUpdate::EffectiveBased); в MyTable_UPD не MyTable.

Попробуйте:

ttsbegin; 
while select forUpdate MyTable 
{ 
    MyTable.StringField = "Test"; 
    MyTable.validTimeStateUpdateMode(ValidTimeStateUpdate::Correction); 
    MyTable.update(); 

} 
ttscommt; 
0

Попробуйте использовать допустимый диапазон времени состояния в вашем отборном заявлении.

Что-то вроде этого:

MyTable.validTimeStateUpdateMode(ValidTimeStateUpdate::Correction); 

ttsbegin; 
while select forUpdate validTimeState(1\1\1900, 31\12\2154) * from MyTable 
{ 
    MyTable.StringField = "Test"; 
    MyTable.update(); 
} 
ttscommit; 

Я использовал примеры с этой страницы MSDN для справки: https://msdn.microsoft.com/en-us/library/gg843767.aspx

 Смежные вопросы

  • Нет связанных вопросов^_^