SEM TRAVA Quando essa opção é selecionada, o SQL Server lê ou modifica os dados sem nenhum bloqueio. Nesse caso, o usuário pode ler dados de uma Transação Não Comprometida ou Reverter, conhecido como "dados sujos".
TRAVA DE CONTENÇÃO Quando essa opção é selecionada, o SQL Server mantém esse bloqueio compartilhado até o final de toda a transação, sem liberá-lo no caminho.
ATUALIZAÇÃO Quando essa opção é selecionada, o SQL Server usa um bloqueio de modificação em vez de um bloqueio compartilhado ao ler dados e mantém esse bloqueio até o final de toda a transação ou comando. Essa opção garante que múltiplos processos possam ler dados ao mesmo tempo, mas apenas esse processo pode modificar os dados.
TABLOCK Quando essa opção é selecionada, o SQL Server colocará um bloqueio compartilhado em toda a tabela até o término do comando. Essa opção garante que outros processos só possam ler e não modificar os dados.
PAGLOCK Essa opção é a padrão e, quando selecionada, o SQL Server usa um bloqueio de página compartilhado.
TABLOCKX (Bloqueio de Mesa Exclusivo) Quando essa opção é selecionada, o SQL Server colocará um bloqueio em toda a tabela até que o comando ou transação termine. Isso impedirá que outros processos leiam ou modifiquem os dados na tabela.
O HOLDLOCK mantém o bloqueio compartilhado até que toda a transação seja concluída e deve ser liberado assim que o objeto travado não for necessário, igual ao nível de isolamento da transação SERIALIZÁVEL
A instrução NOLOCK é executada sem emitir um bloqueio compartilhado, permitindo leituras sujas, que é igual ao nível de isolamento da transação READ UNCOMMITTED
O PAGLOCK usa múltiplos bloqueios de página onde um bloqueio de tabela é usado
O READPAST permite que o SQL Server pule linhas bloqueadas e execute transações, e para níveis de isolamento de transações READ UNCOMMITTED, pula apenas bloqueios RID, não travamentos de página, zona e tabela
O ROWLOCK impõe o uso de rowlocks
O TABLOCKX impõe o uso de um lock exclusivo em nível de tabela, que impede que qualquer outra transação utilize a tabela durante a transação
O UPLOCK força o uso de atualizações ao ler uma tabela sem um bloqueio compartilhado
Nota: A diferença entre bloquear uma tabela em um banco de dados SELECT * FROM table WITH (HOLDLOCK) Outras transações podem ler a tabela, mas não podem atualizar ou excluir SELECT * FROM tabela COM (TABLOCKX) Outras transações não podem ler, atualizar e excluir tabelas |