Como resolver o erro do servidor SQL 1222 I. e desbloquear uma tabela do servidor SQL

Estou a trabalhar numa base de dados onde carrego dados numa tabela raw por um carregador de dados. Mas hoje o carregador de dados ficou preso por razões desconhecidas. Então eu parei o carregador de dados do Gerenciador de tarefas do windows. Mas então eu tentei novamente carregar dados na tabela raw, mas encontrei-a trancada e não posso fazer nenhuma operação nela. Tentei reiniciar o serviço de servidor SQL, mas não foi resolvido. E não tenho permissão para matar processos neste servidor.

Abaixo está a mensagem mostrada pelo servidor SQL.

Ocorreu uma excepção ao executar uma declaração Transact-SQL ou lote. (Base.SqlServer.ConnectionInfo)

Localização Do Programa:

Na Microsoft.SqlServer.Gestao.Comum.ServerConnection.ExecuteNonQuery(Texto sqlCommand, ExecutionTypes executionType)
na Microsoft.SqlServer.Gestao.Comum.ServerConnection.ExecuteNonQuery(StringCollection sqlCommands, ExecutionTypes executionType)
em Base.SqlServer.Gestao.Smo.ExecutionManager.ExecuteNonQuery(StringCollection consultas)
na Microsoft.SqlServer.Gestao.Smo.SqlSmoObject.ExecuteNonQuery(StringCollection queries, Boolean includeDbContext)
na Microsoft.SqlServer.Gestao.Smo.NamedSmoObject.Mudar O Nome Do Trabalhador (Texto newName)
na Microsoft.SqlServer.Gestao.Smo.NamedSmoObject.Mudar O Nome Doimpl (Texto newName)

===================================

Tempo de bloqueio período excedido. Ou o parâmetro @objname é ambíguo ou o alegado @objtype (objecto) está errado. (.Liquido Fornecedor De Dados SqlClient)


Nome Do Servidor: 162. 44. 25. 59 Número De Erro: 1222
Gravidade: 16 Estado: 56
Procedimento: número da linha sp_rename: 282

A minha versão do servidor SQL é 2008 R2.

Author: halfer, 2011-11-24

3 answers

No Estúdio de gestão de servidores SQL, para descobrir os detalhes da transacção activa, execute o seguinte comando

DBCC opentran()

Você irá obter o detalhe da transacção activa, depois a partir do SPID da transacção activa, obter o detalhe acerca do SPID usando os seguintes comandos

exec sp_who2 <SPID>
exec sp_lock <SPID>

Por exemplo, se o SPID for 69, execute o comando como

exec sp_who2 69
exec sp_lock 69
Agora, você pode matar esse processo usando o seguinte comando
KILL 69
Espero que isto ajude.
 132
Author: AbdulRahman Ansari, 2017-02-16 17:19:24
Já passou algum tempo, mas da última vez tive algo parecido.
ROLLBACK TRAN

Ou tentar

COMMIT
O que já tinha sido feito libertou tudo para que eu pudesse limpar as coisas e começar de novo.
 18
Author: shawty, 2011-11-25 15:18:13

Para evitar isto, certifique-se que todas as transacções iniciais têm 'COMMIT'

O seguinte dirá sucesso, mas deixará as transacções Por persistir:

BEGIN TRANSACTION
BEGIN TRANSACTION
<SQL_CODE?
COMMIT

Fechar as janelas de pesquisa com transacções Por persistir pedir-lhe-á para efectuar as suas transacções. Isto resolverá geralmente a mensagem de erro 1222.

 4
Author: Paul Totzke, 2016-04-01 07:08:02