如何不更新 ValidFrom - ValidTo table 字段?
How to not update ValidFrom - ValidTo table field?
我必须使用 ValidTimeStateFieldType UTCDateTime 更新 Table 上的记录,但我只需要更新一个字符串字段.
如果我使用此代码:
while select forUpdate MyTable
{
MyTable.StringField = "Test";
MyTable_UPD.validTimeStateUpdateMode(ValidTimeStateUpdate::EffectiveBased);
ttsbegin;
MyTable.update();
ttscommit;
}
在命令 MyTable.update();
后更改 table MyTable.ValidFrom 或 MyTable.ValidTo 上的值。
我只需要更改 StringField 上的值,不需要更改 ValidFrom/To 上的值。我想在 UTC 字段上保留相同的信息,我不想创建新记录。
如果我使用 MyTable.validTimeStateUpdateMode(ValidTimeStateUpdate::Correction);
我收到一个错误。
是否可以仅更改值而不触及 ValueFrom/To 字段上的任何内容?
谢谢,
尽情享受吧!
如果我没记错的话,不可能只修改你的 StringField
因为在你的 table 中 Indexes 你已经定义了 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;
尝试在您的 select 语句中使用有效的时间状态范围。
像这样:
MyTable.validTimeStateUpdateMode(ValidTimeStateUpdate::Correction);
ttsbegin;
while select forUpdate validTimeState(100, 3154) * from MyTable
{
MyTable.StringField = "Test";
MyTable.update();
}
ttscommit;
我使用了此 MSDN 页面中的示例来寻求帮助:https://msdn.microsoft.com/en-us/library/gg843767.aspx
我必须使用 ValidTimeStateFieldType UTCDateTime 更新 Table 上的记录,但我只需要更新一个字符串字段. 如果我使用此代码:
while select forUpdate MyTable
{
MyTable.StringField = "Test";
MyTable_UPD.validTimeStateUpdateMode(ValidTimeStateUpdate::EffectiveBased);
ttsbegin;
MyTable.update();
ttscommit;
}
在命令 MyTable.update();
后更改 table MyTable.ValidFrom 或 MyTable.ValidTo 上的值。
我只需要更改 StringField 上的值,不需要更改 ValidFrom/To 上的值。我想在 UTC 字段上保留相同的信息,我不想创建新记录。
如果我使用 MyTable.validTimeStateUpdateMode(ValidTimeStateUpdate::Correction);
我收到一个错误。
是否可以仅更改值而不触及 ValueFrom/To 字段上的任何内容?
谢谢,
尽情享受吧!
如果我没记错的话,不可能只修改你的 StringField
因为在你的 table 中 Indexes 你已经定义了 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;
尝试在您的 select 语句中使用有效的时间状态范围。
像这样:
MyTable.validTimeStateUpdateMode(ValidTimeStateUpdate::Correction);
ttsbegin;
while select forUpdate validTimeState(100, 3154) * from MyTable
{
MyTable.StringField = "Test";
MyTable.update();
}
ttscommit;
我使用了此 MSDN 页面中的示例来寻求帮助:https://msdn.microsoft.com/en-us/library/gg843767.aspx