Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Принцип оптимистичного параллелизма  [new]
Andrey.dav
Member

Откуда:
Сообщений: 5
Добрый день

Несколько раз эта процедура выполнялась, а потом прекратила и появилась ошибка.


UPDATE e
SET e.price= CAST(dbo.st_Round_price(g.Price_Retail * dbo.st_getrate_now(2))-1 as float) ,
e.price_retail=CAST(g.Price_Retail as float) ,
e.price_swiss= CAST(isnull(g.Price_Old,0) as float)
FROM OPENQUERY(MYSQL_ESPRIT,
'select g_id, price, price_retail, price_swiss from goods') as e
INNER JOIN tbl_Goods as g
ON g.g_id = e.g_id
where g.brand_id = 407 and g.g_id > 1000000


Выводит ошибку:

Поставщик OLE DB "MSDASQL" для связанного сервера "MYSQL_ESPRIT" вернул сообщение "Не удается найти строку для обновления. Некоторые значения могли быть изменены со времени ее последнего чтения.".
Сообщение 7343, уровень 16, состояние 4, строка 4
Поставщик OLE DB "MSDASQL" для связанного сервера "MYSQL_ESPRIT" не может UPDATE таблицу "[MSDASQL]". В наборе строк использовался принцип оптимистичного параллелизма, и значение столбца было изменено после последней выборки или повторной синхронизации содержащей его строки.

Положили этот update в транзакцию, все равно та же ошибка.
Читал до этого форумы, но нет четкого ответа как эту проблему решить.

Спасибо за помощь

Андрей
7 июн 19, 18:03    [21904813]     Ответить | Цитировать Сообщить модератору
 Re: Принцип оптимистичного параллелизма  [new]
Andrey.dav
Member

Откуда:
Сообщений: 5
Нашел решение!

https://stackoverflow.com/questions/9684264/update-mysql-from-ms-sql-server
7 июн 19, 18:26    [21904846]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить