Подтвердить что ты не робот

Ошибка удаления всех таблиц "DELETE не удалось, так как следующие параметры SET имеют неправильные настройки:" QUOTED_IDENTIFIER ""

У меня есть script, чтобы удалить все таблицы в моей базе данных, которые выглядят следующим образом:

-- Disable all constraints
EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT all'

-- Disable all triggers 
EXEC EnableAllTriggers @Enable = 0

-- Delete data in all tables
EXEC sp_MSForEachTable 'DELETE FROM ?'

-- Dnable all constraints
EXEC sp_MSForEachTable 'ALTER TABLE ? WITH CHECK CHECK CONSTRAINT all'

-- Reseed identity columns
EXEC sp_MSForEachTable 'DBCC CHECKIDENT (''?'', RESEED, 0)'

-- Enable all triggers
EXEC EnableAllTriggers @Enable = 1

Когда он попадает в строку DELETE, я получаю эту ошибку для нескольких таблиц:

DELETE не удалось, поскольку следующие параметры SET имеют неправильные настройки: "QUOTED_IDENTIFIER". Убедитесь, что параметры SET верны для использования с индексированными представлениями и/или индексами для вычисленных столбцов и/или отфильтрованных индексов и/или уведомлений запросов и/или методов типа данных XML и/или операций пространственного индекса.

У меня нет индексированных представлений, все внешние ключи и триггеры отключены, поэтому я не знаю, что вызывает эту ошибку. Любые идеи?

4b9b3361

Ответ 1

Добавьте опции SET в вызов удаления.

Они все еще применяются к другим элементам, упомянутым в ошибке, даже если вы отключили FK.

Это будет работать с любыми сохраненными или настройками среды

Изменить после комментария

EXEC sp_MSForEachTable 'SET QUOTED_IDENTIFIER ON; DELETE FROM ?'