CORRECÇÃO: A subconsulta em uma função CASE é avaliada mesmo se a condição na expressão WHEN for falsa no SQL Server 2000

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 898115
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Bug #: 474152 (SQL Server 8.0)
Microsoft distribui correções do Microsoft SQL Server 2000 como um arquivo para download. Como as correções são cumulativas, cada versão nova contém todos os hotfixes e todas as as correções de segurança que foram incluídas com o SQL Server 2000 anterior corrigir lançamento.
Sumário
Este artigo descreve o seguinte sobre esta versão de hotfix:
  • Problemas corrigidos por esse pacote de hotfix
  • Os pré-requisitos para instalar o pacote de hotfix
  • Se é necessário reiniciar o computador depois de instalar o pacote de hotfix
  • Se o pacote de hotfix é substituído por qualquer outro pacote de hotfix
  • Se você deve fazer alterações no registro
  • Arquivos que estão contidos no pacote de hotfix
Sintomas
No Microsoft SQL Server 2000, quando você usa uma função CASE que contém uma subconsulta para expressão THEN, a subconsulta é avaliada mesmo se a condição na expressão WHEN for false.

Por exemplo, a expressão WHEN verifica se um campo é NUMERIC na consulta a seguir, e a subconsulta na expressão THEN converte este campo em um INT:
SELECT * FROM table1 T1  WHERE CASE WHEN isnumeric(T1.varcharColumn)=1    THEN CASE WHEN exists(SELECT * FROM table1 S1 WHERE cast(T1.varcharColumn as int) = S1.numericColumn)      THEN 0    ELSE 1    END  ELSE 2  END=1 
ao executar a consulta, você receber a seguinte mensagem de erro:
Servidor: Tipo de mensagem 245, nível 16, estado 1, erro de sintaxe de linha 4 converter o valor varchar '<columndata>' em uma coluna de dados int.
Observação Neste exemplo, quando o campo não é NUMERIC, a expressão THEN deve não ser avaliada.

Para obter uma lista de todos os hotfixes de 3a SQL Server 2000 Service Pack lançados publicamente, consulte o seguinte artigo na Base de dados de Conhecimento da Microsoft:
810185Atualização de hotfix do SQL Server 2000 para SQL Server 2000 Service Pack 3 e 3a
Resolução

Informações sobre o hotfix

Um hotfix suportado está disponível no Microsoft. No entanto, esse hotfix destina-se a corrigir o problema descrito neste artigo. Aplique-o somente aos sistemas que apresentarem esse problema específico.

Se o hotfix está disponível para download, há uma seção "Download de Hotfix disponível" na parte superior neste artigo da Base de dados de Conhecimento. Se esta seção não for exibido, envie uma solicitação para suporte e atendimento ao cliente Microsoft para obter o hotfix.

Observação Se ocorrerem problemas adicionais ou se qualquer solução de problemas é necessária, talvez você precise criar uma solicitação de serviço separada. Os custos normais de suporte serão aplicados a questões de suporte adicionais e problemas que não se qualificam para esse hotfix específico. Para obter uma lista completa de números de telefone de suporte e Atendimento Microsoft ou para criar uma solicitação de serviço separada, visite o seguinte site: Observação O formulário "Download de Hotfix disponível" exibe os idiomas para os quais o hotfix está disponível. Se você não vir seu idioma, é porque um hotfix não está disponível para esse idioma.

Pré-requisitos

  • Microsoft SQL Server 2000 Service Pack 3 (SP3)

    Para obter mais informações sobre como obter o SQL Server 2000 Service Pack 3, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
    290211Como obter o SQL Server 2000 service pack mais recente
  • Microsoft SQL Server 2000 hotfix compilação 8.00.1007

    Para obter mais informações sobre como obter o SQL Server 2000 hotfix criar 8.00.1007, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
    893312CORRECÇÃO: Você pode receber uma mensagem de erro "SQL Server não foi possível gerar process_loginread thread" e um vazamento de memória pode ocorrer quando você cancelar uma consulta remota no SQL Server 2000

Informações sobre reinicialização

Não é necessário reiniciar o computador após aplicar esse hotfix.

Informações do registro

Não é necessário alterar o registro.

Informações sobre o arquivo de hotfix

Esse hotfix contém apenas os arquivos que são necessárias para corrigir os problemas que este artigo lista. Este hotfix não pode conter de todos os arquivos que você deve ter para actualizar completamente um produto para a compilação mais recente.

A versão em inglês deste hotfix tem atributos de arquivo (ou atributos de arquivo posteriores) listados na tabela a seguir. As datas e horas desses arquivos estão listadas no horário de universal coordenado (UTC). Quando você exibe as informações do arquivo, ele é convertido para a hora local. Para encontrar a diferença entre o UTC e a hora local, use a guia fuso horário na ferramenta Data e hora no painel de controle.
SQL Server 2000 de 32 bits
   Date         Time   Version         Size       File name   -----------------------------------------------------------   22-Apr-2005  16:44  2000.80.1022.0    664,128  Autoplt.dll         22-Apr-2005  16:44  2000.80.1022.0     78,400  Console.exe         22-Apr-2005  16:44  2000.80.1022.0    332,352  Ctasksui.dll        22-Apr-2005  16:44  2000.80.1022.0    315,968  Custtask.dll        22-Apr-2005  16:44  2000.80.1022.0     33,340  Dbmslpcn.dll        22-Apr-2005  16:44  2000.80.1022.0  1,905,216  Dtspkg.dll          22-Apr-2005  16:44  2000.80.1022.0    528,960  Dtspump.dll         22-Apr-2005  16:44  2000.80.1022.0     41,536  Dtsrun.exe          22-Apr-2005  16:44  2000.80.1022.0  1,557,052  Dtsui.dll           22-Apr-2005  16:44  2000.80.1022.0    639,552  Dtswiz.dll          22-Apr-2005  16:44  2000.80.1022.0    102,992  Impprov.dll         22-Apr-2005  16:44  2000.80.1022.0    352,828  Isqlw.exe           22-Apr-2005  16:44  2000.80.1022.0     82,492  Itwiz.exe           22-Apr-2005  16:44  2000.80.1022.0     90,692  Msgprox.dll         15-Apr-2005  00:58  8.11.41022.0      226,304  Mssdi98.dll         22-Apr-2005  16:44  2000.80.1022.0     62,024  Odsole70.dll        22-Apr-2005  16:45  2000.80.1022.0     25,144  Opends60.dll        22-Apr-2005  16:44  2000.80.1022.0     57,904  Osql.exe            22-Apr-2005  16:44  2000.80.1022.0    279,104  Pfutil80.dll        22-Apr-2005  16:44  2000.80.1022.0    143,940  Qrdrsvc.exe         22-Apr-2005  16:44  2000.80.1022.0    221,768  Replprov.dll        22-Apr-2005  16:44  2000.80.1022.0    307,784  Replrec.dll         22-Apr-2005  16:44  2000.80.1022.0    287,304  Rinitcom.dll        22-Apr-2005  16:44  2000.80.1022.0     78,416  Sdiclnt.dll         22-Apr-2005  16:44  2000.80.1022.0    823,872  Semexec.dll         22-Apr-2005  16:44  2000.80.1022.0     66,112  Semmap.dll          22-Apr-2005  16:44  2000.80.1022.0     57,916  Semnt.dll           22-Apr-2005  16:44  2000.80.1022.0    492,096  Semobj.dll          22-Apr-2005  16:44  2000.80.1022.0     53,832  Snapshot.exe        22-Apr-2005  16:43  2000.80.1022.0     28,672  Sqlagent.dll        22-Apr-2005  16:44  2000.80.1022.0    311,872  Sqlagent.exe        22-Apr-2005  16:43  2000.80.1022.0    168,001  Sqlakw32.dll        22-Apr-2005  16:44  2000.80.1022.0     33,344  Sqlctr80.dll        22-Apr-2005  16:44  2000.80.1022.0    815,676  Sqldata.dll         22-Apr-2005  16:44  2000.80.1022.0  4,215,360  Sqldmo.dll          22-Apr-2005  16:44                     25,172  Sqldumper.exe       22-Apr-2005  16:44  2000.80.1022.0    156,224  Sqlmaint.exe        22-Apr-2005  16:44  2000.80.1022.0    180,792  Sqlmap70.dll        22-Apr-2005  16:44  2000.80.1022.0    188,992  Sqlmmc.dll          22-Apr-2005  16:44  2000.80.1022.0    401,984  Sqlqry.dll          22-Apr-2005  16:44  2000.80.1022.0     57,920  Sqlrepss.dll        22-Apr-2005  16:44  2000.80.1022.0    590,396  Sqlsort.dll         22-Apr-2005  16:44  2000.80.1022.0     45,644  Sqlvdi.dll          22-Apr-2005  16:44  2000.80.1022.0    106,588  Sqsrvres.dll        22-Apr-2005  16:44  2000.80.1022.0     33,340  Ssmsgnet.dll        22-Apr-2005  16:44  2000.80.1022.0     33,340  Ssmslpcn.dll        22-Apr-2005  16:44  2000.80.1022.0     33,340  Ssmsqlgc.dll        22-Apr-2005  16:44  2000.80.1022.0     33,340  Ssmssnet.dll        22-Apr-2005  16:44  2000.80.1022.0     82,492  Ssnetlib.dll        22-Apr-2005  16:44  2000.80.1022.0     25,148  Ssnmpn70.dll        22-Apr-2005  16:44  2000.80.1022.0    123,456  Stardds.dll         22-Apr-2005  16:44  2000.80.1022.0    158,268  Svrnetcn.dll        22-Apr-2005  16:44  2000.80.1022.0     76,416  Svrnetcn.exe        22-Apr-2005  16:44  2000.80.1022.0     74,304  Xplog70.dll         22-Apr-2005  16:45  2000.80.1022.0     98,872  Xpweb70.dll      
Versão do SQL Server 2000 64-bit
   Date         Time   Version         Size    File name          Platform   -----------------------------------------------------------------------   26-Apr-2005  04:21  2000.80.1022.0      56,832  Dbmslpcn.dll   IA-64   26-Apr-2005  04:20  2000.80.1022.0     528,960  Dtspump.dll    x86   26-Apr-2005  04:21  2000.80.1022.0     244,736  Impprov.dll    IA-64   26-Apr-2005  04:21  2000.80.1022.0     185,856  Msgprox.dll    IA-64   15-Apr-2005  00:51  8.11.41022.0       742,912  Mssdi98.dll    IA-64   26-Apr-2005  04:21  2000.80.1022.0     150,528  Odsole70.dll   IA-64   26-Apr-2005  04:22  2000.80.1022.0      27,136  Opends60.dll   IA-64   26-Apr-2005  04:21  2000.80.1022.0     148,992  Osql.exe       IA-64   26-Apr-2005  04:21  2000.80.1022.0     353,280  Qrdrsvc.exe    IA-64   26-Apr-2005  04:21  2000.80.1022.0     535,552  Replprov.dll   IA-64   26-Apr-2005  04:21  2000.80.1022.0     769,024  Replrec.dll    IA-64   26-Apr-2005  04:21  2000.80.1022.0     650,240  Rinitcom.dll   IA-64   26-Apr-2005  04:21  2000.80.1022.0     160,768  Semmap.dll     IA-64   26-Apr-2005  04:21  2000.80.1022.0     132,608  Semnt.dll      IA-64   26-Apr-2005  04:21  2000.80.1022.0      88,576  Snapshot.exe   IA-64   26-Apr-2005  04:20  2000.80.1022.0      10,240  Sqlagent.dll   IA-64   26-Apr-2005  04:21  2000.80.1022.0   1,055,232  Sqlagent.exe   IA-64   26-Apr-2005  04:21  2000.80.1022.0      90,112  Sqlboot.dll    IA-64   26-Apr-2005  04:21  2000.80.1022.0      32,256  Sqlctr80.dll   IA-64   26-Apr-2005  04:21  2000.80.1022.0     812,032  Sqldata.dll    IA-64   26-Apr-2005  04:21  2000.80.1022.0  13,845,504  Sqldmo.dll     IA-64   26-Apr-2005  04:21                      39,936  Sqldumper.exe  IA-64   26-Apr-2005  04:21  2000.80.1022.0     493,568  Sqlmaint.exe   IA-64   26-Apr-2005  04:21  2000.80.1022.0      23,040  Sqlmap70.dll   IA-64   26-Apr-2005  04:21  2000.80.1022.0     152,064  Sqlrepss.dll   IA-64   26-Apr-2005  04:21  2000.80.1022.0     616,960  Sqlsort.dll    IA-64   26-Apr-2005  04:21  2000.80.1022.0     120,320  Sqlvdi.dll     IA-64   26-Apr-2005  04:21  2000.80.1022.0     227,328  Sqsrvres.dll   IA-64   26-Apr-2005  04:21  2000.80.1022.0      53,760  Ssmslpcn.dll   IA-64   26-Apr-2005  04:21  2000.80.1022.0      59,904  Ssmsqlgc.dll   IA-64   26-Apr-2005  04:21  2000.80.1022.0     256,000  Ssnetlib.dll   IA-64   26-Apr-2005  04:21  2000.80.1022.0      20,992  Ssnmpn70.dll   IA-64   26-Apr-2005  04:21  2000.80.1022.0     430,080  Svrnetcn.dll   IA-64   26-Apr-2005  04:21  2000.80.1022.0     185,856  Svrnetcn.exe   IA-64   26-Apr-2005  04:21  2000.80.1022.0     183,296  Xplog70.dll    IA-64   26-Apr-2005  04:21  2000.80.1022.0     187,392  Xpweb70.dll    IA-64

Observação Devido às dependências do arquivo, o hotfix mais recente ou o recurso que contém esses arquivos também pode conter arquivos adicionais.
Situação
A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na seção "Aplica-se a".
Mais Informações
Para obter mais informações sobre o esquema para nomeação para atualizações do Microsoft SQL Server, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
822499Novo esquema para nomeação para pacotes de atualização de software do Microsoft SQL Server
Para obter mais informações sobre a terminologia usada pela Microsoft quando ela corrige software após ele é liberado, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
824684Descrição da terminologia padrão que é usada para descrever as atualizações de software
SQL2000

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 898115 - Última Revisão: 12/09/2015 02:26:48 - Revisão: 1.5

Microsoft SQL Server 2000 Enterprise Edition 64-bit, Microsoft SQL Server 2000 Desktop Engine (Windows), Microsoft SQL Server 2000 Developer Edition, Microsoft SQL Server 2000 Enterprise Edition, Microsoft SQL Server 2000 Personal Edition, Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 2000 Workgroup Edition

  • kbnosurvey kbarchive kbmt kbautohotfix kbbug kbfix kbhotfixserver kbqfe KB898115 KbMtpt
Comentários