Error deleting all tables “DELETE failed because the following SET options have incorrect settings: 'QUOTED_IDENTIFIER'”

匿名 (未验证) 提交于 2019-12-03 03:04:01

问题:

I have a script to delete all tables in my database that looks like this:

-- 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 

When it hits the DELETE line I get this error for a few of the tables:

DELETE failed because the following SET options have incorrect settings: 'QUOTED_IDENTIFIER'. Verify that SET options are correct for use with indexed views and/or indexes on computed columns and/or filtered indexes and/or query notifications and/or XML data type methods and/or spatial index operations.

I don't have any indexed views, all foreign keys and triggers are disabled, so I don't know what is causing this error. Any ideas?

回答1:

Add the SET options to the delete call.

These still apply to the other items mentioned in the error, even though you disabled FKs.

This will work around any saved or environment settings

Edit, after comment

EXEC sp_MSForEachTable 'SET QUOTED_IDENTIFIER ON; DELETE FROM ?' 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!