Я нашла причину. И она оказалась вовсе не в базе данных, а в коде.
Был добавлен вызов SQL запроса, в котором в начале отключался вывод кол-во полученных строк результата (set nocount on), а в конце забыли его включить (set nocount off). После выполнения запроса любой следующий update любой таблицы выдает ошибку "Вы пытаетесь оперировать с одной записью, но затрагивается большее количество записей. Проверьте индексы, запустите синхронизацию базы данных, или что-либо эквивалентное."
Например, выполнение вот такого простейшего job'a приведет к ошибке для следующего update'a любой записи на любой форме.
X++:
static void probaSetNocountOff(Args _args)
{
UserConnection connection = new UserConnection();
Statement stmt = connection.createStatement();
ResultSet rSet;
str query_;
;
query_ = "set nocount on"
+ "\n"
+ "select top 1 ItemId "
+ "from InventTable (nolock) "
+ "where dataareaID = '" + curext() + "'"
+ "\n"
// + "set nocount off"
;
rSet = stmt.executeQuery(query_);
while (rSet.next())
{
info(rset.getString(1));
}
}
Если добавить set nocount off, то ошибки не будет.
В общем, сами создаем себе проблемы.
Всем спасибо за ответы.