ОБНОВЛЕНИЕ ОТКРЫТИЯ - PullRequest
       9

ОБНОВЛЕНИЕ ОТКРЫТИЯ

0 голосов
/ 14 декабря 2011

Я получаю сообщение об ошибке в следующем операторе OPENQUERY, который пытаюсь выполнить для базы данных MySql с SQL Server.

UPDATE OPENQUERY(MYWPDB, 'SELECT total FROM wp_tt WHERE id = 112121') SET total = 1

Ошибка: «Сведения о столбце ключа недостаточны или неверны.Обновление затронуло слишком много строк ".

Оператор должен обновлять поле 'total' до значения '1'.Это целочисленное поле, а id - это первичный ключ таблицы.Я использую SQL Server 2000.

Ответы [ 2 ]

2 голосов
/ 13 сентября 2013

У меня была та же проблема с openquery, которая обновляет iSeries. Мой openquery тоже внутри курсора. Исправление состоит в том, чтобы включить ключевые столбцы в select.

Так что в вашем случае это будет примерно так:

UPDATE OPENQUERY(MYWPDB, 'SELECT key1, key2, total FROM wp_tt WHERE id = 112121') SET total = 1
1 голос
/ 14 декабря 2011

Оказывается, с запросом все в порядке.Я пытался выполнить оператор внутри операции курсора внутри хранимой процедуры.Я проверил его вне операции с курсором, и он работал нормально.

Однако, поскольку мне все еще нужно было работать с курсором, мне пришлось продолжать копать, и в конце концов я нашел, что синтаксис из четырех частей поможет.Таким образом, запрос вместо этого стал:

UPDATE MYWPDB...wp_tt SET total = 1 WHERE id = 112121
...