2012-03-27 28 views
0

快速的问题我有快照数据库启用使用改变存储过程使用

ALTER DATABASE myDB 
SET ALLOW_SNAPSHOT_ISOLATION ON 

我试图改变现有的存储过程使用的事务隔离级别使用如下读取未提交的快照隔离级别:

USE [myDB] 
GO 
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 
GO 
/****** Object: StoredProcedure [dbo].[myStoredProcedure] Script Date: 03/27/2012 11:39:24 ******/ 
SET ANSI_NULLS OFF 
GO 
SET QUOTED_IDENTIFIER OFF 
GO 
ALTER PROCEDURE [dbo].[myStoredProcedure] 

AS 
BEGIN 
    SELECT * 
    FROM someTable 
END 

RETURN 0 

但是,当我重新打开存储过程时,SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED语句消失了。

USE [myDB] 
GO 
/****** Object: StoredProcedure [dbo].[myStoredProcedure] Script Date: 03/27/2012 11:39:24 ******/ 
SET ANSI_NULLS OFF 
GO 
SET QUOTED_IDENTIFIER OFF 
GO 
ALTER PROCEDURE [dbo].[myStoredProcedure] 

AS 
BEGIN 
    SELECT * 
    FROM someTable 
END 

RETURN 0 

事务级别是否设置了实际值?我希望在关闭并重新打开存储过程窗口后,该语句仍然存在。只是想验证,谢谢。

回答

1

你必须把它放在程序体中。如果它在外面,只是在该隔离级别上改变它,而不是改变过程定义来使用它。

USE [myDB] 
GO 
SET ANSI_NULLS OFF 
GO 
SET QUOTED_IDENTIFIER OFF 
GO 
ALTER PROCEDURE [dbo].[myStoredProcedure] 

AS 
BEGIN 
    SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 

    SELECT * 
    FROM someTable 
END