Loading…

Casos do Dia a Dia – CREATE TABLE gerando um arquivo DUMP! Isso é um bug?

Olá Pessoal,

No meu ambiente existem uns 30 profissionais que utilizam o SQL Server diariamente (Dev, ERP e BI). Com isso, cada dia uma pessoa me aparece com um problema diferente para resolver. Entretanto, em uma dessas vezes, eles se superaram e me mandaram um problema que eu não consegui explicar o motivo.

Durante uma tarde normal de trabalho comecei a receber e-mails com erros de severidade 20 em um servidor importante. Ao identificar a pessoa que estava gerando os erros, ela disse que estava querendo apenas criar uma tabela temporária. E o pior é que era verdade!!!

Ao criar uma tabela com dois campos iguais geralmente temos o erro abaixo:

create table #teste(
cod int,
teste int,
teste int)

Entretanto, ao criar uma tabela com dois campos calculados com o mesmo nome, o erro é bem mais grave:

create table #teste(
cod int,
teste as cod+cod,
teste as cod+cod )

A severidade do erro subiu de 16 para 20 e a conexão agora é encerrada pelo SQL Server.

Também é gerado um arquivo de Dump e 174 linhas são escritas no log do sql server. E são aquelas mensagens que nenhum DBA gosta de ver pela frente:

Na época que estava montando esse post a versão mais recente do SQL Server 2008 R2 era com o Cumulative Update 4 (10.50.2796). Por isso os testes desse post foram feitos nessa versão.

Entretanto, a pouco tempo foi lançado o Cumulative Update 5, mas pela descrição dos problemas resolvidos, não identifiquei nada que resolvesse esse problema.

Segue a descrição das correções desse novo Update: Cumulative Update 5

Segue a versão do banco de dados utilizado no teste:

Já no SQL Server 2012 (que também não era a versão final):

Ao criar campos calculados com o mesmo nome, o erro retornado é o mesmo que o gerado na criação de campos não calculados com nomes iguais:

create table #teste(
cod int,
teste int,
teste int)
GO
create table #teste2(
cod int,
teste as cod+cod,
teste as cod+cod )

Nenhum arquivo de dump é criado, assim como nenhuma mensagem de erro é gerada no log do sql server.

Agora eu pergunto para vocês, isso pode ser considerado um BUG do SQL Server 2008 R2 que foi resolvido no SQL Server 2012?

Espero comentários.

Segue o arquivo de Dump que foi gerado (abra em uma nova aba): ( Arquivo de Dump )

UPDATE – 27/03/2012 14:00:

Fui orientado a abrir um Connect na microsoft sobre esse problema.

Segue o link abaixo para votação:

https://connect.microsoft.com/SQLServer/feedback/details/733643/create-table-getting-a-severity-error-level-20-losing-the-connection-and-creating-a-dump-file

Mesmo isso não sendo um bug grave, acredito que valha a pena ser corrigido. Votem lá se possível.

Gostou dessa dica?

Cadastre seu e-mail para receber novos Posts e curta minha Página no Facebook para receber Dicas de Leituras e Eventos sobre SQL Server.

Confira mais experiências do Dia a Dia de um DBA no meu Treinamento de Tarefas do Dia a Dia de um DBA.

Abraços,

Fabrício Lima

MCITP – Database Administrator

Consultor e Instrutor SQL Server

Trabalha com SQL Server desde 2006

10 thoughts on “Casos do Dia a Dia – CREATE TABLE gerando um arquivo DUMP! Isso é um bug?

  1. Pessoal,

    Acabei de fazer o mesmo teste no SQL Server 2005 SP3 e SP4 o erro esta aparecendo da mesmo forma que o SQL Server 2012 ou quando realizamos a criação da temp table com colunas com o mesmo nome sem realizar o cálculo.

    Também teste no SQL Server 2000 em um ambiente que tenho aqui na Empresa e o erro foi o mesmo relatado anteriormente.

    Agora acho que posso dizer que é um bug do SQL Server 2008!!!

    Algum mais testou?

    1. Fala Marcos,

      Não fiz isso, mas o Catae me disse por e-mail que era um bug mesmo.

      Meu acesso ao twitter no trabalho é bem restrito. Se quiser pode jogar lá na #sqlhelp . Seria legal ver a opinião deles lá fora…

      Abraços

  2. Interessante…
    Testei em um servidor do meu ambiente(Microsoft SQL Server 2008 (SP3) – 10.0.5500.0 (X64)) e mesmo erro.

    Serveridade 20 neste caso!… você deve ter pensado que o cara tava querendo te sacanear… eu pensaria! 🙂

    Votando no connect!
    Abs.
    Leandro Ribeiro
    @sqlleroy

Deixe uma resposta