CORRECÇÃO: Mensagem de erro: "informações de coluna de chave insuficiente para actualizar" ocorre no SQL Server 2000 SP3

Traduções de Artigos Traduções de Artigos
Artigo: 814893 - Ver produtos para os quais este artigo se aplica.
Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
CPR - SQL 2000 - correcção no SP4
N.º DE BUGS: 364087 (SHILOH_BUGS)
Expandir tudo | Reduzir tudo

Nesta página

Sintomas

Depois de aplicar um dos seguintes procedimentos
  • A correcção descrita no
    321541CORRECÇÃO: SQL Server pode devolver incorrecto resultados quando utiliza uma associação externa e uma vista
    num computador com o Microsoft SQL Server 2000 Service Pack 2 (SP2).
  • A correcção de segurança descrita no Microsoft Security Bulletin MS02-061 para o Microsoft SQL Server 2000 SP2.
  • Microsoft SQL Server 2000 Service Pack 3 (SP3).
poderá receber a seguinte mensagem de erro:
Informações de coluna de chave insuficiente para actualizar ou actualizar.

Resolução

Informações sobre Service Packs

Para resolver este problema, obtenha o service pack mais recente do Microsoft SQL Server 2000. Para obter informações adicionais, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
290211Como obter o SQL Server 2000 service pack mais recente

Informações sobre a correcção

A versão inglesa desta correcção tem os atributos de ficheiro (ou atributos de ficheiro posteriores) listados na seguinte tabela. As datas e horas destes ficheiros são indicadas no formato de universal hora (UTC) coordenada Coordinated. Quando visualiza as informações do ficheiro, é convertido para a hora local. Para determinar a diferença entre a UTC e a hora local, utilize o separador fuso horário na ferramenta Data e hora no painel de controlo.
   Date         Time   Version        Size              File name
   ------------------------------------------------------------------
   08-Feb-2003  05:43                    786,432 bytes  Distmdl.ldf
   08-Feb-2003  05:43                  2,359,296 bytes  Distmdl.mdf
   01-Feb-2003  00:32  2000.80.763.0   1,557,052 bytes  Dtsui.dll        
   30-Jan-2003  05:18                    746,470 bytes  Instdist.sql
   08-Feb-2003  06:40  2000.80.765.0      90,692 bytes  Msgprox.dll      
   08-Feb-2003  03:53                  1,065,895 bytes  Replmerg.sql
   08-Feb-2003  06:40  2000.80.765.0     221,768 bytes  Replprov.dll     
   08-Feb-2003  06:40  2000.80.765.0     307,784 bytes  Replrec.dll      
   30-Jan-2003  05:18                  1,084,318 bytes  Replsys.sql
   08-Feb-2003  06:40  2000.80.765.0     176,696 bytes  Sqlmap70.dll     
   08-Feb-2003  06:40  2000.80.765.0      57,920 bytes  Sqlrepss.dll     
   15-Feb-2003  02:52  2000.80.769.0   7,512,145 bytes  Sqlservr.exe     
   15-Feb-2003  02:52                 12,715,008 bytes  Sqlservr.pdb
   08-Feb-2003  06:40  2000.80.765.0      45,644 bytes  Sqlvdi.dll       
   08-Feb-2003  06:40  2000.80.765.0      82,492 bytes  Ssnetlib.dll     
				
Nota Devido a dependências de ficheiros, a correcção ou funcionalidade que contém os ficheiros mais recentes poderão também conter ficheiros adicionais.

Ponto Da Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na secção "Aplica-se a".Este problema foi corrigido pela primeira vez no Microsoft SQL Server 2000 Service Pack 4.

Mais Informação

O hotfix discutido neste artigo regresses a correcção abordada no seguinte artigo da base de dados de conhecimento da Microsoft:
321541CORRECÇÃO: SQL Server pode devolver resultados incorrectos quando utiliza uma associação externa e uma vista


Nota Para tornar o hotfix discutido neste artigo operacional, deve activar o sinalizador de rastreamento - T220 e reinicie o SQL Server.

Para activar o sinalizador de rastreio, siga estes passos:
  1. Abra o SQL Enterprise Manager no servidor.
  2. Clique para seleccionar o servidor que está com problemas.
  3. Clique com o botão direito do rato no servidor e, em seguida, clique em Propriedades .
  4. No separador Geral , clique em arranque parâmetros .
  5. Na caixa de diálogo Parâmetros de inicialização , escreva -T220 e, em seguida, clique em Adicionar .
  6. Clique em OK .
  7. Pare e reinicie o serviço MSSQLSERVER para reiniciar o SQL Server.

Um exemplo do problema e que o sinalizador de rastreio - T220 seguir.
O exemplo utiliza duas tabelas de exemplo com o nome Test_Table1 e Test_Table2 . Considere as seguintes tabelas e vista:
CREATE TABLE TEST_TABLE1 ( 
[CODE] [int] NOT NULL PRIMARY KEY, 
[DESCRIPTION] [varchar] (50)) 

CREATE TABLE TEST_TABLE2 ( 
[CODE] [int] NOT NULL PRIMARY KEY, 
[DESCRIPTION] [varchar] (50)) 
go
CREATE VIEW dbo.TEST_VIEW 
AS 
SELECT CODE, 
UPPER(DESCRIPTION) AS DESCRIPTION, 
ISNULL(UPPER(DESCRIPTION), 'DEFAULT') DESCRIPTION_DEF 
FROM dbo.TEST_TABLE2 
go
Execute agora, este código:
DECLARE cc CURSOR FOR 
SELECT TEST_TABLE1.CODE, TEST_VIEW.DESCRIPTION, TEST_VIEW.DESCRIPTION_DEF 
FROM TEST_TABLE1 LEFT OUTER JOIN TEST_VIEW 
ON TEST_VIEW.CODE = TEST_TABLE1.CODE 
FOR UPDATE
  • Para versões do SQL Server 2000 antes de SQL Server 2000 SP2, com a correcção de segurança discutida no Microsoft Security Bulletin MS02-061 instalado, o código é executado com êxito.
  • Para todas as versões do SQL Server 2000 depois do SQL Server 2000 SP2, com a correcção de segurança discutida no Microsoft Security Bulletin MS02-061 instalado, o código não é executado com êxito.
  • Para versões do SQL Server 2000 8.00.0769 e mais tarde, quando utilizar o sinalizador de rastreamento T220 ou DBCC traceon (220), o código executado com êxito.
Tenha também em atenção que a instrução SELECT não fornece o mesmo resultado.
  • Para versões do SQL Server 2000 antes de SQL Server 2000 SP2, com a correcção de segurança discutida no Microsoft Security Bulletin MS02-061 instalado ou postal 8.00.0769 com o sinalizador de rastreamento 220, o resultado é semelhante a:

    CODE        DESCRIPTION                                        DESCRIPTION_DEF                                    
    ----------- -------------------------------------------------- -------------------------------------------------- 
    1           NULL                                               DEFAULT
    
    
  • Para versões do SQL Server 2000 após o SQL Server 2000 SP2, com a correcção de segurança discutida no Microsoft Security Bulletin MS02-061 instalado, o resultado é semelhante a:

    CODE        DESCRIPTION                                        DESCRIPTION_DEF                                    
    ----------- -------------------------------------------------- -------------------------------------------------- 
    1           NULL                                               NULL
    

Propriedades

Artigo: 814893 - Última revisão: 26 de fevereiro de 2014 - Revisão: 4.2
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2000 Service Pack 3
Palavras-chave: 
kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbqfe kbsqlserv2000presp4fix kbfix kbbug KB814893 KbMtpt
Tradução automática
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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 814893

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com