Como resolver o erro do servidor SQL 1222 I. e desbloquear uma tabela do servidor SQL
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.
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.
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.
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.