如題,今天突然發現數據庫中的存儲過程裡面的“SET ANSI_NULLS ON”
都變成了 OFF,一直以來都沒有遇到過這樣的情況,請問是什麼原因能導致這樣的問題出現呢?求解~~~
在創建或修改 Transact-SQL 存儲過程時,數據庫引擎 將保存 SET QUOTED_IDENTIFIER 和 SET ANSI_NULLS 的設置。執行存儲過程時,將使用這些原始設置。因此,所有客戶端會話的 SET QUOTED_IDENTIFIER 和 SET ANSI_NULLS 設置在執行存儲過程時都將被忽略。在創建或更改存儲過程時不保存其他 SET 選項(例如 SET ARITHABORT、SET ANSI_WARNINGS 或 SET ANSI_PADDINGS)。如果存儲過程的邏輯取決於特定的設置,則應在過程開頭添加一條 SET 語句,以確保設置正確。從存儲過程中執行 SET 語句時,該設置只在存儲過程完成之前有效。之後,設置將還原為調用存儲過程時的值。這樣一來,單個客戶端就可以設置所需的選項,而不會影響存儲過程的邏輯。