Что означает «Вставить в связанную таблицу не удалось, RAISERROR не может найти запись для ошибки x в сообщениях sysmessages»? - PullRequest
2 голосов
/ 28 ноября 2011

Я прошу Access 2002 выполнить такой запрос на сервере SQL 2000:

INSERT INTO tableA (col1, col2, col3, ...)
SELECT (col1, col2, col3)
FROM tableB LEFT JOIN tableA ON tableA.id = tableB.id
WHERE tableA.id IS NULL;

Но он не работает и выдает мне следующее сообщение:

Microsoft Access

ODBC - сбой вставки в связанную таблицу 'tableA'.

[Microsoft] [Драйвер ODBC SQL Server] [SQL Server] RAISERROR не удалось найти записьза ошибку 800311 в системных сообщениях.(# 2758)

Что происходит?

Может быть, стоит отметить, что tableA - это связанная таблица, тогда как tableB - это таблица, которая существует только в Access ..

1 Ответ

0 голосов
/ 28 ноября 2011

В сообщении указывается, что некоторый код SQL где-то явно вызывает ошибку с идентификатором 800311, но эта ошибка не была добавлена ​​в системные сообщения с sp_addmessage.Я бы использовал SQL Profiler, чтобы увидеть, как именно выполняется запрос на сервере и где возникает ошибка.Я предполагаю, что вы используете SQL 2000 из-за ссылки на sysmessages, но вы всегда должны указывать версию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...