/ / t-SQL e ISOLATION LEVEL SERIALIZABLE para renomear tabelas - sql-server, sql-server-2008, tsql

t-SQL e ISOLATION LEVEL SERIALIZABLE para renomear tabelas - sql-server, sql-server-2008, tsql

Eu tenho dois scripts do SQL Server 2008 que podem ser executados de um script do ASP.NET simultaneamente.

Aqui está um:

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

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

COMMIT;
SET XACT_ABORT OFF;

E então esta instrução para renomear e excluir a tabela:

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;

Minha pergunta é, como você pode ver, estou usando ISOLATION LEVEL SERIALIZABLE para resolver o problema desses dois que estão executando o mesmo tipo, deixando apenas um executar, mas minha pergunta é: essa exclusão mútua afeta o EXEC sp_rename Comando SQL?

Respostas:

0 para resposta № 1

sp_rename não é afetado pelo nível de isolamento. O nível de isolamento afeta o bloqueio e o controle de versão da linha. http://msdn.microsoft.com/en-us/library/ms173763.aspx Você não precisa desse nível de isolamento para nenhum deles, não pode renomear uma tabela com bloqueios a partir de uma seleção, inserção ou atualização.