Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

O SQL Server encapsula consultas Select...Insert em uma transação implícita?


Você está confuso entre transação e bloqueio. A transação reverte seus dados de volta ao estado original se houver algum erro. Caso contrário, ele moverá os dados para o novo estado. Você nunca terá seus dados em um estado intermitente quando as operações forem realizadas. Por outro lado, o bloqueio é aquele que permite ou impede que vários usuários acessem os dados simultaneamente. Para responder à sua pergunta, select...insert é atômico e desde que nenhum bloqueio granular seja explicitamente solicitado, nenhum outro usuário poderá inserir enquanto select..insert estiver em andamento.