SQL Server QUOTED_IDENTIFIER Ошибка при обновлении - PullRequest
0 голосов
/ 30 октября 2019

Я получаю следующую ошибку в очень простом запросе на обновление, когда он выполняется как задание в SQL Server 2008. Он выполняется, как и ожидалось, когда я запускаю его вручную в SSMS. Может ли кто-нибудь помочь мне понять, что вызывает это? В настройках базы данных для Quoted Identifiers Enabled установлено значение False. Я попытался добавить SET QUOTED_IDENTIFIERS TRUE в задание, и это тоже не сработало.

ОБНОВЛЕНИЕ не удалось, поскольку следующие параметры SET имеют неверные настройки: 'QUOTED_IDENTIFIER'. Убедитесь, что параметры SET верны для использования с индексированными представлениями и / или индексами для вычисляемых столбцов и / или отфильтрованных индексов и / или уведомлений о запросах, и / или методов типа данных XML, и / или операций с пространственным индексом.

Запрос выглядит следующим образом (имена таблиц и столбцов были изменены, чтобы защитить невинных)

UPDATE Table1
SET Column1 = 'C'
WHERE col_status = 'A' AND emp_number
IN (SELECT emp_number
FROM Table2
WHERE emp_status = 'T') 

1 Ответ

1 голос
/ 30 октября 2019

При обновлении table1 вам нужно добавить два оператора set ниже.

Вы можете использовать соединение напрямую для обновления table1.

SET QUOTED_IDENTIFIER ON;

UPDATE T1
SET T1.Column1 = 'C'
FROM Table1 AS T1
INNER JOIN Table2 AS T2 ON T2.emp_number = T1.emp_number
AND T1.col_status = 'A'
AND T2.emp_status = 'T';

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