Усечение таблицы IBM i через OpenQuery в SQL - PullRequest
1 голос
/ 08 марта 2019

В настоящее время я пытаюсь удалить данные, хранящиеся в таблице в IBM i, через открытый запрос, используя связанный сервер, с помощью следующей команды в SSMS:

DELETE FROM OpenQuery(LnkSrv,'SELECT * FROM LibA.Table1') 

При запуске выше, я получаю сообщение об ошибке.

Поставщик OLE DB "IBMDASQL" для связанного сервера "LnkSrv" вернул сообщение "Информация о ключевом столбце недостаточна или неверна. Слишком много строк были затронуты обновлением. ". Msg 7345, уровень 16, состояние 1, строка 3 OLE Поставщик БД "IBMDASQL" для связанного сервера "LnkSrv" не может удалить из стол "ВЫБРАТЬ * ИЗ LibA.Table1". Обновление не соответствует требования к схеме.

1 Ответ

0 голосов
/ 10 марта 2019

У меня такое чувство, что это не проблема OpenQuery.

Я подозреваю, что сочетание ситуации DB2 on i 'CLRPFM' и использования OLE DB для ее управления вызывает некоторую путаницу.

Есть ли у вашей целевой таблицы первичный ключ?Если нет, я бы попытался добавить один из них.

Если вы просто хотите очистить таблицу разово, вы сможете запустить удаление в IBM i.

...