【发布时间】:2012-10-23 16:37:33
【问题描述】:
我正在创建一个存储过程,我不想在脚本中进行任何锁定。我确信我需要在脚本的开头声明“SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED”。但我不确定如何在声明之后开始。 Microsoft 的一个示例显示以“BEGIN TRANSACTION”开头并以“END TRANSACTION”结尾。有人在“SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED”之后开始时没有任何 BEGIN 和 END 语句。请建议我使用“SET TRANSACTION ISOLATION LEVEL”语句来实现我的目标的正确方法。
http://msdn.microsoft.com/en-us/library/aa259216(v=sql.80).aspx
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
GO
BEGIN TRANSACTION
SELECT * FROM publishers
SELECT * FROM authors
...
COMMIT TRANSACTION
SQL Server: how to set default isolation level for the entire stored procedure?
BEGIN
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
-- will a transaction level for a atomic transaction created by SQL Server for this statement be READ COMMITTED
SELECT * FROM T
END
【问题讨论】:
-
第二个代码sn-p是Stored Procs的写法,必须在sql语句的开头。
标签: sql-server-2008 stored-procedures