簡體   English   中英

刪除所有表時出錯“DELETE 失敗,因為以下 SET 選項的設置不正確:'QUOTED_IDENTIFIER'”

[英]Error deleting all tables "DELETE failed because the following SET options have incorrect settings: 'QUOTED_IDENTIFIER'"

我有一個腳本來刪除我的數據庫中的所有表,如下所示:

-- 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 數據類型方法和/或空間索引操作。

我沒有任何索引視圖,所有外鍵和觸發器都被禁用,所以我不知道是什么導致了這個錯誤。 有任何想法嗎?

將 SET 選項添加到刪除調用中。

即使您禁用了 FK,這些仍然適用於錯誤中提到的其他項目。

這將解決任何已保存或環境設置

編輯,評論后

EXEC sp_MSForEachTable 'SET QUOTED_IDENTIFIER ON; DELETE FROM ?'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM