FIX: Messaggio di errore: "informazioni di colonna chiave insufficienti per l'aggiornamento" si verifica in SQL Server 2000 SP3

Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell’utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell’utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 814893
Questo articolo è stato archiviato. L’articolo, quindi, viene offerto “così come è” e non verrà più aggiornato.
CPR - SQL 2000 - Hotfix in SP4
BUG #: 364087 (RIFERIMENTO)
Sintomi
Dopo aver applicato uno dei seguenti
  • L'aggiornamento rapido descritto
    321541FIX: SQL Server potrebbe restituire errato risultati quando si utilizza un outer join e una visualizzazione
    in un computer che esegue SQL Server 2000 Service Pack 2 (SP2).
  • La correzione di protezione descritta in Microsoft Security Bulletin MS02-061 per Microsoft SQL Server 2000 SP2.
  • Microsoft SQL Server 2000 Service Pack 3 (SP3).
si potrebbe essere visualizzato il seguente messaggio di errore:
Le informazioni sulla colonna chiave non sono sufficienti per effettuare l'aggiornamento.
Risoluzione

Informazioni sul Service pack

Per risolvere il problema, ottenere il service pack più recente per Microsoft SQL Server 2000. Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
290211Come ottenere il service pack più recente per SQL Server 2000

Informazioni sull'hotfix

La versione di lingua inglese di questo aggiornamento rapido (hotfix) presenta gli attributi di file (o attributi successivi) elencati nella tabella riportata di seguito. Date e ore per questi file sono indicati nella coordinated universal time (UTC). Quando si visualizzano le informazioni sul file, viene convertito in ora locale. Per calcolare la differenza tra ora UTC e l'ora locale, utilizzare la scheda fuso orario dello strumento Data e ora del Pannello di controllo.
   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 A causa delle dipendenze fra i file, la funzionalità che contiene i file o l'aggiornamento rapido (hotfix) più recente può contenere anche ulteriori file.

Status
Microsoft ha confermato che questo problema riguarda i prodotti sono elencati nella sezione "Si applica a".Questo problema è stato innanzitutto corretto in SQL Server 2000 Service Pack 4.
Informazioni
L'hotfix descritto in questo articolo regresses la correzione descritta nell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
321541FIX: SQL Server potrebbe restituire risultati non corretti quando si utilizza un outer join e una visualizzazione


Nota Per rendere l'hotfix descritto in questo articolo operativo, attivare il flag di traccia - T220 e riavviare SQL Server.

Per attivare il flag di traccia, attenersi alla seguente procedura:
  1. Aprire SQL Enterprise Manager sul server.
  2. Fare clic per selezionare il server che si verifica il problema.
  3. Fare clic con il pulsante destro del mouse sul server e quindi fare clic su Proprietà .
  4. Nella scheda Generale , fare clic su avvio parametri .
  5. Nella finestra di dialogo Parametri di avvio , digitare -T220 e quindi fare clic su Aggiungi .
  6. Fare clic su OK .
  7. Arrestare e riavviare il servizio MSSQLServer per riavviare SQL Server.

Un esempio di problema e che il flag di traccia - T220 segue.
Nell'esempio viene utilizzato due tabelle di esempio denominate Test_Table1 e Test_Table2 . Considerare i seguenti tabelle e visualizzazione:
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)) goCREATE VIEW dbo.TEST_VIEW AS SELECT CODE, UPPER(DESCRIPTION) AS DESCRIPTION, ISNULL(UPPER(DESCRIPTION), 'DEFAULT') DESCRIPTION_DEF FROM dbo.TEST_TABLE2 go
A questo punto, è possibile eseguire questo codice:
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
  • Per le versioni di SQL Server 2000 prima di SQL Server 2000 SP2, con l'hotfix della protezione descritto in Microsoft Security Bulletin MS02-061 installato, il codice viene eseguito correttamente.
  • Per tutte le versioni di SQL Server 2000 dopo SQL Server 2000 SP2, con l'hotfix della protezione descritto in Microsoft Security Bulletin MS02-061 installato, il codice non viene eseguito correttamente.
  • Per 8.00.0769 le versioni di SQL Server 2000 e versioni successive, quando si utilizza il flag di traccia - T220 o DBCC traceon (220), il codice eseguito correttamente.
Si noti inoltre che l'istruzione SELECT non fornisce lo stesso risultato.
  • Per le versioni di SQL Server 2000 prima di SQL Server 2000 SP2, con l'hotfix della protezione descritto in Microsoft Security Bulletin MS02-061 installato o post 8.00.0769 con flag di traccia 220, il risultato è simile a:

    CODE        DESCRIPTION                                        DESCRIPTION_DEF                                    ----------- -------------------------------------------------- -------------------------------------------------- 1           NULL                                               DEFAULT
  • Per le versioni di SQL Server 2000 dopo SQL Server 2000 SP2, con l'hotfix della protezione descritto in Microsoft Security Bulletin MS02-061 installato, il risultato è simile a:

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

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 814893 - Ultima revisione: 02/26/2014 23:29:09 - Revisione: 4.2

Microsoft SQL Server 2000 Service Pack 3

  • kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbqfe kbsqlserv2000presp4fix kbfix kbbug KB814893 KbMtit
Feedback