0

我有两个可以从 ASP.NET 脚本同时执行的 SQL Server 2008 脚本。

这是一个:

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
SET XACT_ABORT ON;
BEGIN TRANSACTION;

--select, delete, update, insert rows in Table1

COMMIT;
SET XACT_ABORT OFF;

然后这个语句来重命名和删除表:

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
SET XACT_ABORT ON;
BEGIN TRANSACTION;

EXEC sp_rename 'Table1', 'Table2';  --rename Table1 into Table2
DROP TABLE Table1;

COMMIT;
SET XACT_ABORT OFF;

我的问题是,正如您所看到的,我ISOLATION LEVEL SERIALIZABLE通过只运行一次来​​解决这两个以相同类型运行的问题,但我的问题是,这种互斥会影响EXEC sp_renameSQL 命令吗?

4

1 回答 1

0

sp_rename 不受隔离级别的影响。隔离级别影响锁定和行版本控制。http://msdn.microsoft.com/en-us/library/ms173763.aspx你不需要这个隔离级别,你不能重命名一个从选择、插入或更新中锁定的表.

于 2013-05-02T23:11:25.930 回答