![](/img/trans.png)
[英]SET QUOTED_IDENTIFIER ON within the stored procedure is not working
[英]SET QUOTED_IDENTIFIER in stored procedure
當我的生產數據庫恢復到開發環境時,我遇到了一個問題。 在那個數據庫中,我有一個設置SET QUOTED_IDENTIFIER OFF
的存儲過程。 我不確定為什么要這樣做(我沒有寫)。 執行在生產中運行良好,但是,當我在 dev 中運行時出現以下錯誤:
INSERT 失敗,因為以下 SET 選項的設置不正確:“QUOTED_IDENTIFIER”。 驗證 SET 選項是否正確用於計算列上的索引視圖和/或索引和/或過濾索引和/或查詢通知和/或 XML 數據類型方法和/或空間索引操作。
如果我將其設置為on
,則存儲過程在 dev 中運行良好。 我確實找到了一些有關重建索引的信息,可能會導致此問題。 我嘗試在桌子上rebuild all
內容,但並沒有改變問題。 有什么想法嗎?
prod 也有SET ANSI_NULLS ON
和SET NOCOUNT ON
。
1. SET QUOTED_IDENTIFIER
為ON
,則雙引號內的字符被視為標識符。 所以下面的命令會成功。
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE dbo.”Table”
(id int,”Function” VARCHAR(20))
GO
如果我們保持SET QUOTED_IDENTIFIER OFF
那么上面的語句就會失敗。
2. 您可以通過以下查詢找到在您的生產環境中創建的對象,其中標識符設置為ON
SET QUTOED_IDENTIFIERS
設置為ON
:
SELECT OBJECT_NAME _
(object_id) _
FROM sys.sql_modules _
WHERE uses_quoted_identifier = 1
因此,如果您關閉quoted_identifier 狀態,那么您的對象就不會在開發環境中創建
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.