Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

FabianoSouza

Resolver erro Microsoft SQL Server, Error: 1222

Recommended Posts

Pessoal, esse erro travou uma tabela no BD. Não deixa dar DROP, renomear, nem gravar dados nela.

Estou pesquisando soluções para o problema. Mas ainda não tive sucesso.

 

O banco fica num web host, ou seja, não tenho plenos poderes a ele.

 

Nível de desespero: 95%! :o :o

Compartilhar este post


Link para o post
Compartilhar em outros sites

Informe o erro que ocorre.

 

Tentou um shutdown e um startup !?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Informe o erro que ocorre.

 

Tentou um shutdown e um startup !?

Motta, o erro é esse mesmo "Microsoft SQL Server, Error: 1222"

O que seria "shutdown e um startup"?? Alguma instrução SQL?

Como falei, meu BD está num web server de uma empresa de hospedagem, não consigo reiniciar o sistema nem fazer algo do tipo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tem como este host intervir de alguma forma ?

 

shutdown e um startup seria parar e reiniciar o BD , em muitos casos libera estes processos "presos"

 

Chegou a ver isto ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tem como este host intervir de alguma forma ?

 

Vou verificar com eles. Mas geralmente nessa estrtura (hospedagem numa empresa contratada) as opções são burocráticas e demoradas. Mas vou recorrer ao suporte técnico deles.

 

Esse erro está ocorrendo porque uma transact bloqueou uma certa tabela. Só preciso reverter esse bloqueio.

Pelo que andei lendo sobre o assunto, se eu fizer um rollback ou commit, a tabela é desbloqueada. Estou tentando seguir esse caminho...

 

 

Essa é a SP que executo.

Ela só deu pane porque eu estava usando uma function com problema para tratar um campo. Mas já removi a function. Faz meses que uso esse código abaixo, sempre funcionou.

Acredito que se eu dar um Commit ou rollback nessa SP, as coisas volta a funcionar. Mas não sei como criar isso (apenas um commit ou rollback, sem executar o SQL em si)

USE [meubanco]
GO
/* Object:  StoredProcedure [dbo].[in_MinhaSP]    */
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[in_MinhaSP] 
@codigoVaga int,
@candidato varchar(80),
@codAtividade Int,
@codUsuario int

AS
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
BEGIN TRANSACTION

DECLARE @id int, 
@tituloItem varchar(80)

SELECT @id = ID FROM TABELA 
WHERE 
TABELA.Codigo = @codUsuario 
AND
TABELA.Nome = @candidato collate Latin1_General_CI_AI

IF @id IS NULL
BEGIN

INSERT INTO OUTRATAB 

(CodigoVaga) 
VALUES 
(@codigoVaga)

SELECT @id = SCOPE_IDENTITY(), @tituloItem = @candidato

END
ELSE
SET @id = 0
SELECT @id AS respID, @tituloItem AS respTitulo
INSERT INTO MAISUMATAB
(CDCandidato)
VALUES
(@id)

COMMIT TRANSACTION

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tem como este host intervir de alguma forma ?

 

shutdown e um startup seria parar e reiniciar o BD , em muitos casos libera estes processos "presos"

 

Chegou a ver isto ?

 

Fiz o que sugeriu. Mas não tenho permissão para executar esses comandos.

Mas consegui resolver.

Eu simplesmente isolei (comentando) o trecho que faz select e insert, e executei a SP.

Dessa forma, o que estava "pendente de confirmação", recebeu o COMMIT e tudo se normalizou.

Talvez não tenha sido o melhor caminho. Mas resolveu minha emergência,

 

Agradeço pela atenção ao meu problema, amigo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.