Usuário com melhor resposta
Erro SQL 2000 - Internal SQL Server error

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 SnippetSET LANGUAGE PORTUGUESE
SET DATEFORMAT DMYTRUNCATE 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')........
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.
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
-
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.
-
-
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_CLIENTEFROM 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 MODEL1LEFT 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_CLIENTEFROM 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_VENDAWHERE 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
-
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
Ps: Foi útil para vc? Então marque o post como útil
-
-
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
Ps: foi útil para vc? Então marque o post como útil!!!
-
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.
-
-
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