當我想要添加的行SET事務隔離級別
SET事務隔離級別未提交讀
開始我的功能定義腳本的條款之後在SQL Server 2008中, 它說:
Invalid use of a side-effecting operator 'SET TRANSACTION ISOLATION LEVEL' within a function
如何在功能定義內實現此功能?
當我想要添加的行SET事務隔離級別
SET事務隔離級別未提交讀
開始我的功能定義腳本的條款之後在SQL Server 2008中, 它說:
Invalid use of a side-effecting operator 'SET TRANSACTION ISOLATION LEVEL' within a function
如何在功能定義內實現此功能?
你不行。 UDFs do not support set operations.
函數始終在事務的上下文中執行(隱式或顯式),並且一旦事務開始就不能更改事務的隔離級別。
你不能。
您需要在調用該函數的批處理的開始處進行設置。
您是否嘗試過這樣做以避免無法設置事務隔離?
Select * from dbo.MyTable with (nolock)
從http://msdn.microsoft.com/en-us/library/ms173763.aspx「有一個例外,你可以從一個隔離級別在任何時候交易過程中切換到另一個。發生異常當從任何隔離級別更改爲SNAPSHOT隔離時,這會導致事務失敗並回滾,但是,可以將在SNAPSHOT隔離中啓動的事務更改爲任何其他隔離級別。 - 你是對的 - 我錯過了。如果OP將其標記爲已接受,我會刪除該答案 – 2012-04-09 19:48:01
我已經收回了我的DV,因爲您現在已經接受了它。也許只是編輯它,所以它是正確的。 – 2012-04-09 19:49:52