如何不更新有效的Toble Table字段



我必须使用> valimestatefieldtype utcdateTime 更新表上的记录,但是我只需要更新字符串字段。如果我使用此代码:

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

命令MyTable.update();之后更改表mytable.valid.valid.valid.validto上的值。我只需要更改 stringfield 上的值,我不需要更改有效From/to上的值。我想在UTC字段上保留相同的信息,并且不想创建新记录。

如果我使用MyTable.validTimeStateUpdateMode(ValidTimeStateUpdate::Correction);,我会收到错误。

可能只能更改值,而不触摸到字段上的值?

谢谢,

享受!

如果我没记错的话,不可能仅修改您的 StringFieldstrong>您已经定义了DateTime字段。

您需要使用validTimeStateUpdateMode功能,在代码中使用MyTable,然后使用MyTable.update(),但是您在MyTable_UPD中使用validTimeStateUpdateMode(ValidTimeStateUpdate::EffectiveBased); ,而不是MyTable

尝试以下方法:

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

尝试在选择语句中使用有效的时间状态范围。

类似的东西:

MyTable.validTimeStateUpdateMode(ValidTimeStateUpdate::Correction);
ttsbegin;
while select forUpdate validTimeState(111900, 31122154) * from MyTable
{
  MyTable.StringField = "Test";
  MyTable.update();
}
ttscommit;

我使用此MSDN页面中的示例进行帮助:https://msdn.microsoft.com/en-us/library/gg843767.aspx

最新更新