SQL Server Developer Center >
Fóruns do SQL Server
>
SQL Server - Desenvolvimento Geral
>
SQL Server faz inserção em falso
SQL Server faz inserção em falso
- Olá pessoal,Estou com o seguinte problema:Tenho uma store procedure que, entre outras coisas, faz inserções em massa numa table (tbTabela1). Quando rodo a procedure, o BD até retorna a mensagem confirmando a inclusão ((x row(s) affected)), mas quando vou resgatar esses registros, descubro que eles não foram inseridos...O procedimento sempre funcionou, hoje de manhã que ele começou a inserir em falso. Estou usando INSERT com SELECT. Não e falta de COMMIT.Alguém sabe me informar o que pode ser?Obrigado
Respostas
- Olá Pessoal,Obrigado pela colaboração de todos.Mas quando fui abrir lá pra mexer, depois que acionei o módulo, o sistema passou a funcionar normalmente... :/Eu não fiz nada...
Já tinha tentado o profiler, mas a última coisa que ele faz é selecionar os dados inseridos na tabela. Como não vinha nada, a thread da aplicação encerra;No servidor só tem uma instância e o BD que utilizo;Quando estava colocando o código para printar o @@TRANCOUNT, percebi que o problema não existia mais.Que coisa estranha... Alguém sabe o que é?De qqer forma, obrigado a todos.- Marcado como RespostaFernanda SimõesMSFT, Moderadorsexta-feira, 6 de novembro de 2009 12:23
Todas as Respostas
- Ola Andre,
Verifique se vc tem alguma trigger na tabela que esta impedindo esta acao.
att.
Marcelo Fernandes
MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!! Se você nao apalicou nenhum patch e nao fez nenhuma alteraçao no codigo da SP, entao nao existe um motivo assim tao obvio... Como teve mudança do horario de verao esses dias, verifique se algo depende da hora do sistema. Eu tive esse problema ano passado.
Att
William- Olá Marcelo e WilliamObrigado pelas respostas, mas não há nenhuma trigger e nada depende dos horários...Ele diz que inseriu, mas na verdade não inseriu...
- Use o Tracer. Veja o que pode estar acontecendo. Essa tabela tem algum campo Identity? Se nao e se for possivel, crie uma coluna de autonumeraçao. Eu faco isso quando quer ter certeza que algo nao foi inserido. Foi assim que eu descobri o problema com o horario ano passado.
Att
William - André,
Uma possibilidade é realizar o monitoramento além do trace file utilizando o Profiler!!!
A idéia do William em relação a utilização do Identity é uma tecnica simples, prática e muito inteligente.
Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA - E aí André, tranquilo?Por acaso não foi ativado o Implicit Transactions?Um teste rápido é dentro dessa proc, colocar um PRINT do @@TRANCOUNT, para listar quantas transações estão abertas.Além disso, coloque um código dentro da proc para consultar a tabela e ver se foi feito o insert corretamente.Abraço!!
Classifiquem as respostas. O Fórum agradece!! - Boa tarde Andre.
Sei que isto é obvio para um DBA com sua experiencia, mas ja vi acontecer com amigos muito experientes.
Ja checou se a tabela atualizada na procedure é a mesma que você consulta depois?
Mesmo eschema, mesmo banco, mesma instancia?
As vezes as coisas mais simples nos escapam...
Abraços. - Olá Pessoal,Obrigado pela colaboração de todos.Mas quando fui abrir lá pra mexer, depois que acionei o módulo, o sistema passou a funcionar normalmente... :/Eu não fiz nada...
Já tinha tentado o profiler, mas a última coisa que ele faz é selecionar os dados inseridos na tabela. Como não vinha nada, a thread da aplicação encerra;No servidor só tem uma instância e o BD que utilizo;Quando estava colocando o código para printar o @@TRANCOUNT, percebi que o problema não existia mais.Que coisa estranha... Alguém sabe o que é?De qqer forma, obrigado a todos.- Marcado como RespostaFernanda SimõesMSFT, Moderadorsexta-feira, 6 de novembro de 2009 12:23


