none
Erro SQL 2000 - Internal SQL Server error RRS feed

  • Pergunta

  • Quando executo o script abaixo aparece a seguinte mensagem de erro, "Internal SQL Server error", realmente não tenho idéia do seja... Alguém já se deparou com esse problema?

    Uso o SQL 2000 Ent.Edt SP4.

     

    Code Snippet

    SET LANGUAGE PORTUGUESE
    SET DATEFORMAT DMY

    TRUNCATE TABLE dbo.DM_S_CORP_EQUIP

    INSERT INTO dbo.DM_S_CORP_EQUIP
    (
    NRO_REGISTRO_VENDA, COD_FABRICA, DESC_FABRICA, ORIGEM_DE_MERCADO_LISTA, COD_SALES_MODEL, NRO_SERIE,
    DES_MODELO, COD_LISTA, DAT_PEDIDO_FAB, DES_FAMILIA, DAT_ULT_MANUT, DAT_NF_PGTO, VLR_CONC_ESPECIAL,
    IDT_PMP, IDT_PMP_PLUS, IDT_EPP, VLR_PMP_CONCEDIDO, VLR_PMP_EPP, PER_REPASSE_SERV, VLR_REPASSE_SERV,
    VLR_EPP_CONCEDIDO, IDT_RECEB_FATUR, DAT_ENTR_TECNICA, DAT_CHEG_CLIENTE
    )

    SELECT DISTINCT isnull(PED.NRO_REGISTRO_VENDA,'NI')........

     

     

     

    Obrigado.
    sábado, 4 de agosto de 2007 03:14

Respostas

  • Esse erro (8624) eh um interno no Query Processor, provavelmente um bug que eh causado por algum dos seus select. No SQL Server 2005 esse erro estah marcado pra gerar um "dump" quando isso acontece (nao tenho certeza pra 2000). Olhe dentro do diretorio da sua instancia (normalmente %ProgramFiles%\Microsoft SQL Server\mssql.1\msql\log) se existe algum arquivo *.dmp.

    Se tiver, por favor, mande ele pra mim: fvoznika at microsoft.com

    Se nao tiver, me avise que tem outros jeitos de conseguir o dump.

     

    Como o Nilton falou, se vc conseguir achar o select que estah causando o problema tambem ajuda bastate.

     

    Abraco,

    Fabricio.

    sexta-feira, 10 de agosto de 2007 17:51

Todas as Respostas

  •  

    Olá!

     

    É somente essa mensagem que aparece?? Não teria quem sabe algum código de erro a mais? Ou quem sabe a linha onde ocorre o erro?? Pergunto isso pois essa mensagem é muito genérica e o código que está sendo executado é extremamente simples, não faz nada de mais...

     

    Verifique se no log do Windows ou Log de erros do SQL existe alguma entrada para algo anormal que esteja acontecendo.

     

    Poste aqui mais informações, para podermos analisar melhor a sua situação.

     

     

    Abraço

    sábado, 4 de agosto de 2007 03:30
  • Alexandre, veja o erro completo.

     

    Server: Msg 8624, Level 16, State 7, Line 10
    Internal SQL Server error.

     

    Encontrei apenas um único erro no log do sql

    2007-08-03 23:21:50.32 server    Failed to obtain TransactionDispenserInterface: XACT_E_TMNOTAVAILABLE

     

    O estranho que identifiquei é que o SP do SQL se mantém o SP1, não sei porque não atualizou para o SP4.

     

    2007-08-03 23:21:50.08 server    Microsoft SQL Server  2000 - 8.00.2039 (Intel X86)
     May  3 2005 23:18:38
     Copyright (c) 1988-2003 Microsoft Corporation
     Enterprise Edition on Windows NT 5.2 (Build 3790: Service Pack 1)

     

    Utilizo o Win 2003 Server.

     

    sábado, 4 de agosto de 2007 12:06
  •  

    Oi !

     

    Verifique como está o serviço do DTC.

     

    Verifique também se existem mensagens no Event Viewer.

     

    []'s

     

    domingo, 5 de agosto de 2007 01:03
  • Td bem..

    O que seria esse serviço DTC?

     

    O estranho é que tenho uma instrução muito parecida com essa, funciona perfeitamente.

     

    Vejam o código completo abaixo

    Code Snippet

    --CARGA STAGE DE EQUIPAMENTOS

    SET LANGUAGE PORTUGUESE
    SET DATEFORMAT DMY


     

    TRUNCATE TABLE dbo.DM_S_CORP_EQUIP

    INSERT INTO dbo.DM_S_CORP_EQUIP
    (
    NRO_REGISTRO_VENDA, COD_FABRICA, DESC_FABRICA, ORIGEM_DE_MERCADO_LISTA, COD_SALES_MODEL, NRO_SERIE,
    DES_MODELO, COD_LISTA, DAT_PEDIDO_FAB, DES_FAMILIA, DAT_ULT_MANUT, DAT_NF_PGTO, VLR_CONC_ESPECIAL,
    IDT_PMP, IDT_PMP_PLUS, IDT_EPP, VLR_PMP_CONCEDIDO, VLR_PMP_EPP, PER_REPASSE_SERV, VLR_REPASSE_SERV,
    VLR_EPP_CONCEDIDO, IDT_RECEB_FATUR, DAT_ENTR_TECNICA, DAT_CHEG_CLIENTE
    )

    SELECT DISTINCT isnull(PED.NRO_REGISTRO_VENDA,'NI')AS NUMREGVENDA, PED.COD_FABRICA, FAB1.DES_FABRICA, isnull(LIST1.DES_LISTA,'NAO IDENTIFICADO') AS LISTA,
    PED.COD_SALES_MODEL, PED.NRO_SERIE, MODEL.DES_MODELO, PED.COD_LISTA,
    CONVERT(DATETIME,PED.DAT_PEDIDO_FAB,103) AS DAT_PEDIDO_FAB1
    ,MODEL.DES_FAMILIA, CONVERT(DATETIME,PED.DAT_ULT_MANUT,103) AS DAT_ULT_MANUT1,PED.DAT_NF_PAGTO

    ,CONVERT(DECIMAL(12,2),REPLACE(REGVND1.VLR_CONC_ESPECIAL,',','.')) AS VLR_CONC_ESPECIAL1
    ,REGVND1.IDT_PMP,REGVND1.IDT_PMP_PLUS,REGVND1.IDT_EPP
    ,CONVERT(DECIMAL(12,2),REPLACE(REGVND1.VLR_PMP_CONCEDIDO,',','.')) AS VLR_PMP_CONCEDIDO1
    ,CONVERT(DECIMAL(12,2),REPLACE(REGVND1.VLR_PMP_EPP,',','.')) AS VLR_PMP_EPP1
    ,CONVERT(DECIMAL(12,2),REPLACE(REGVND1.PER_REPASSE_SERV,',','.')) AS PER_REPASSE_SERV1
    ,CONVERT(DECIMAL(12,2),REPLACE(REGVND1.VLR_EPP_CONCEDIDO,',','.')) AS VLR_EPP_CONCEDIDO
    ,REGVND1.IDT_RECEB_FATUR,REGVND1.DAT_ENTR_TECNICA,REGVND1.DAT_CHEG_CLIENTE

    FROM dbo.DM_O_CORP_MMPEDIDO PED

    LEFT OUTER JOIN (
     
    SELECT DISTINCT MODEL1.COD_FABRICA, MODEL1.COD_SALES_MODEL, MODEL1.COD_FAMILIA, MODEL1.DES_MODELO, FAM.DES_FAMILIA
    FROM dbo.DM_O_CORP_MMMODELO MODEL1

    LEFT OUTER JOIN (
    SELECT DISTINCT FAM1.COD_FAMILIA, FAM1.DES_FAMILIA
    FROM dbo.DM_O_CORP_MMFAMILIA FAM1
    GROUP BY FAM1.COD_FAMILIA, FAM1.DES_FAMILIA) FAM ON MODEL1.COD_FAMILIA = FAM.COD_FAMILIA
    GROUP BY MODEL1.COD_FABRICA, MODEL1.COD_SALES_MODEL, MODEL1.COD_FAMILIA, MODEL1.DES_MODELO, FAM.DES_FAMILIA

     

    ) MODEL ON PED.COD_SALES_MODEL = MODEL.COD_SALES_MODEL

    LEFT OUTER JOIN (
    SELECT DISTINCT FAB.COD_FABRICA, FAB.DES_FABRICA
    FROM dbo.DM_O_CORP_MMFABRICA FAB
    GROUP BY  FAB.COD_FABRICA, FAB.DES_FABRICA) FAB1 ON PED.COD_FABRICA = FAB1.COD_FABRICA


    LEFT OUTER JOIN (
    SELECT DISTINCT LIST.COD_LISTA, LIST.DES_LISTA
    FROM dbo.DM_O_CORP_MMLISTA LIST
    GROUP BY  LIST.COD_LISTA, LIST.DES_LISTA) LIST1 ON PED.COD_LISTA = LIST1.COD_LISTA


    LEFT OUTER JOIN (
    SELECT DISTINCT REGVND.NRO_REGISTRO_VENDA, REGVND.VLR_CONC_ESPECIAL,REGVND.IDT_PMP,REGVND.IDT_PMP_PLUS,REGVND.IDT_EPP,REGVND.VLR_PMP_CONCEDIDO,REGVND.VLR_PMP_EPP, REGVND.PER_REPASSE_SERV,
    REGVND.VLR_REPASSE_SERV, REGVND.VLR_EPP_CONCEDIDO,REGVND.IDT_RECEB_FATUR,REGVND.DAT_ENTR_TECNICA,REGVND.DAT_CHEG_CLIENTE

    FROM dbo.DM_O_CORP_MMREGVENDA REGVND
    GROUP BY REGVND.NRO_REGISTRO_VENDA, REGVND.VLR_CONC_ESPECIAL, REGVND.IDT_PMP,REGVND.IDT_PMP_PLUS,REGVND.IDT_EPP,REGVND.VLR_PMP_CONCEDIDO,REGVND.VLR_PMP_EPP,
    REGVND.PER_REPASSE_SERV, REGVND.VLR_REPASSE_SERV, REGVND.VLR_EPP_CONCEDIDO,REGVND.IDT_RECEB_FATUR,REGVND.DAT_ENTR_TECNICA,REGVND.DAT_CHEG_CLIENTE)
    REGVND1 ON PED.NRO_REGISTRO_VENDA = REGVND1.NRO_REGISTRO_VENDA

    WHERE PED.NRO_SERIE <> ' ' AND PED.COD_SALES_MODEL <> ' ' -- and VLR_PMP_CONCEDIDO <> '0'

    GROUP BY PED.NRO_REGISTRO_VENDA, PED.COD_FABRICA, FAB1.DES_FABRICA, LIST1.DES_LISTA, PED.COD_SALES_MODEL, PED.NRO_SERIE, MODEL.DES_MODELO, PED.COD_LISTA,
    PED.DAT_PEDIDO_FAB,MODEL.DES_FAMILIA,PED.DAT_ULT_MANUT,PED.DAT_NF_PAGTO
    ,REGVND1.VLR_CONC_ESPECIAL,REGVND1.IDT_PMP,REGVND1.IDT_PMP_PLUS,REGVND1.IDT_EPP,REGVND1.VLR_PMP_CONCEDIDO,REGVND1.VLR_PMP_EPP, REGVND1.PER_REPASSE_SERV, REGVND1.VLR_REPASSE_SERV, REGVND1.VLR_EPP_CONCEDIDO,
    REGVND1.IDT_RECEB_FATUR,REGVND1.DAT_ENTR_TECNICA,REGVND1.DAT_CHEG_CLIENTE


     

     

     

    domingo, 5 de agosto de 2007 13:32
  • Olá Ghostrace,

     

    1º: Seu SQL Server está sim com o SP4 !! O número 2039 no final da primeira linha indica isto.

    2º DTC é um serviço que o SQL Server utiliza quando vc está fazendo transações distribuídas. É normalmente utilizado quando vc possui um SQL Server instalado em Cluster e executa INSERTs entre bancos de dados que estão em ambos os nós do cluster.

     

    Este problema que vc encontrou pode ocorrer em um SQL Server que está instalado no Windows 2003 sem o SP1 e quando o serviço do DTC sobe depois do serviço do SQL Server.

     

    Minha sugestão é:

     

    1º certifique-se de iniciar primeiro o serviço do DTS e depois o do SQl Server,

    2º Passe o SP1 no seu Windows 2003.

     

    Mais info sobre este erro vc encontra no seguindo documento http://support.microsoft.com/kb/895250

     

    um abraço

    Nilton Pinheiro

    www.mcdbabrasil.com.br

     

    Ps: Foi útil para vc? Então marque o post como útil

     

     

    domingo, 5 de agosto de 2007 23:16
    Moderador
  •  

    Pessoal,

    Segui conforme o Nilton me informou, levantei primeiro o DTC, atualizei o WIN03 para SP2, mesmo assim o erro persiste, alguém teria alguma outra alternativa?

     

    Obrigado.

    segunda-feira, 6 de agosto de 2007 18:19
  • Olá Ghostrace,

     

    Neste caso sugiro que vc quebre a sua query em partes para tentar identificar o ponto que gera o problema. Notei que seu insert é baseado no resultado de um SELECT com vários Subselects.... O que acontece se vc executar os SELECTs parte a parte.

     

    Apenas como debug, tente executar os selects separadamente para tentar localizar o problema.

     

    Um abraço

    Nilton Pinheiro

    www.mcdbabrasil.com.br

     

    Ps: foi útil para vc? Então marque o post como útil!!!

     

    terça-feira, 7 de agosto de 2007 00:26
    Moderador
  • Esse erro (8624) eh um interno no Query Processor, provavelmente um bug que eh causado por algum dos seus select. No SQL Server 2005 esse erro estah marcado pra gerar um "dump" quando isso acontece (nao tenho certeza pra 2000). Olhe dentro do diretorio da sua instancia (normalmente %ProgramFiles%\Microsoft SQL Server\mssql.1\msql\log) se existe algum arquivo *.dmp.

    Se tiver, por favor, mande ele pra mim: fvoznika at microsoft.com

    Se nao tiver, me avise que tem outros jeitos de conseguir o dump.

     

    Como o Nilton falou, se vc conseguir achar o select que estah causando o problema tambem ajuda bastate.

     

    Abraco,

    Fabricio.

    sexta-feira, 10 de agosto de 2007 17:51
  •  

    Fabricio, realmente era um problema no meu select, acredito que na conversão do campo datatime. Agora está funcionando perfeitamente.

     

    Mais uma vez obrigado.

    sábado, 11 de agosto de 2007 13:38
  • Legal Ghostrace !!!

     

    Se for possível post aqui como vc resolveu o problema. Isso certamente será bastante útil para todos que acompanharam o post.

     

    um abraço

    Nilton Pinheiro

    www.mcdbabrasil.com.br

     

    sábado, 11 de agosto de 2007 15:24
    Moderador