對於創建存儲過程明確,那麼只有兩個是重要的分析時
SET ANSI_NULLS
SET QUOTED_IDENTIFIER
而且應該ON與新的SQL Server的功能,只有工作,這些爲ON
工作
存儲過程使用在執行時指定的SET設置執行,除了SET ANSI_NULLS和SET QUOTED_IDENTIFIE R.指定SET ANSI_NULLS或SET QUOTED_IDENTIFIER的存儲過程使用存儲過程創建時指定的設置。如果在存儲過程中使用,則任何SET設置都將被忽略。
編號:http://msdn.microsoft.com/en-us/library/ms190356.aspx
在同一時間,其他都設置爲好,使用
SET ANSI_DEFAULTS ON
當啓用(ON),該選項可啓用以下ISO設置:
SET ANSI_NULLS
SET CURSOR_CLOSE_ON_COMMIT
SET ANSI_NULL_DFLT_ON
SET IMPLICIT_TRANSACTIONS
SET ANSI_PADDING
SET QUOTED_IDENTIFIER
SET ANSI_WARNINGS
爲了完整起見,請在連接級別設置其他三個連接級別,以允許像INDEXED VIEWs一樣工作直接地
SET ARITHABORT ON
SET CONCAT_NULL_YIELDS_NULL ON
SET NUMERIC_ROUNDABORT OFF
未提交的閱讀應謹慎使用。如果它是一個存儲過程,它很可能不想對任何數據進行髒讀。 – DaveShaw 2011-03-11 20:56:48
爲什麼不呢?如果我所做的只是拉取數據,爲什麼要鎖定整個表格?如果對生產數據庫運行大型查詢,能夠執行髒讀操作非常重要。當然,應該針對報告數據庫運行大型查詢,但是當上層管理人員想要在中午執行每日活動報告時,您還有什麼要做?鎖定數據庫,以便他們可以運行他們的報告? – cadrell0 2011-03-15 18:27:10