我想更新多个SalesQuotationLines匹配报价ID X.
salesQuotationLine = salesQuotationLine::find(quotationId,true);
salesQuotationLine.selectForUpdate(true);
if(salesQuotationLine) {
ttsBegin;
SalesQuotationLine.Field = newFieldValue;
salesQuotationLine.update();
ttscommit;
问题是,这只是更新find
方法中的第一条记录。
如何确保所有与QuotationID匹配的记录都在更新?
答案 0 :(得分:2)
您可以使用此代码:
while select forupdate salesQuotationLine
where salesQuotationLine.quotationId == quotationId
{
salesQuotationLine..Field = newFieldValue;
ttsbegin;
salesQuotationLine.update();
ttscommit;
}
或者可以使用_update_recordset _
ttsbegin;
update_recordset salesQuotationLine
setting
Field = newFieldValue
where salesQuotationLine.quotationId == quotationId
ttscommit;
我希望能够解决这个问题。
答案 1 :(得分:0)
Dynanics AX 2012提供了使用X ++ SQL语句来提高性能的方法。此选项为update_recordset
,使您可以在一次到服务器的行程中更新多行:
update_recordset salesQuotationLine
setting
Field = newFieldValue
where salesQuotationLine.quotationId == quotationId;