Sql-Server

SQL Server 代理:QUOTED_IDENTIFIER

  • April 17, 2018

場景相當簡單:作業在生產中失敗,發出錯誤“ALTER INDEX 失敗,因為以下 SET 選項的設置不正確:‘QUOTED_IDENTIFIER’ …”。

問題是,為什麼這個問題會出現在生產環境中,而不是出現在我們的任何測試環境中?檢查 DBCC USEROPTIONS,結果在所有數據庫中完全相同。此外,腳本本身根本不包含引號。它只是重建一些索引並使用全掃描更新一些統計資訊。

在任何其他數據庫上使用完全相同的作業,我可以將 QUOTED_IDENTIFIER 設置為 ON 或 OFF,或者根本不設置它並讓它在連接預設值上執行。不管怎樣,它總是有效的。但在生產中,它似乎必須設置為 ON 或 OFF。

我問這個是因為時間上我負擔不起每天測試一次,我需要知道為什麼會發生這個錯誤以及如何預測需要哪個設置以及何時需要。測試和生產數據庫之間唯一明顯的區別是排序規則,但即使創建測試數據庫以匹配生產中的排序規則,無論 QUOTED_IDENTIFIER 設置如何,作業仍然有效。

謝謝!

我剛剛遇到了同樣的問題。預設情況下,作業步驟中的第一條語句是 to SET QUOTED_IDENTIFIER OFF- 您可以在 Profiler 跟踪中看到這一點。解決方案是在程式碼開頭添加一行到SET QUOTED_IDENTIFIER ON.

至於您的腳本不包含引號 - 我相信在創建或重建某些類型的索引時,需要進行設置。

這裡有幾個連結:

https://stackoverflow.com/questions/15218893/first-statement-issued-by-sql-server-agent-sets-quoted-identifier-off

引用自:https://dba.stackexchange.com/questions/52802