Logga in med Microsoft
Logga in eller skapa ett konto.
Hej,
Välj ett annat konto.
Du har flera konton
Välj det konto som du vill logga in med.

Fel: #50003826 (SQL-snabbkorrigering)

Microsoft distribuerar Microsoft SQL Server 2008 korrigeringar som en nedladdningsbar fil. Eftersom korrigeringar är kumulativa innehåller varje ny utgåva innehåller alla snabbkorrigeringar och säkerhetskorrigering för alla säkerhetskorrigeringar som ingår i föregående SQL Server 2008.

Symptom

Du kör en fråga som infogar data i en temporär tabell i SQL Server 2008. Insert-uttrycket innehåller en underfråga som refererar till samma tillfälligt register. När du kör frågan kan du få ett felmeddelande av följande slag:

Msg 605, nivå 21 tillstånd 3, rad 1Attempt att hämta sidan (1:225) i 2-databasen misslyckades. Den tillhör fördelning a 281474980315136 inte till 504403158513025024.

Om du kör frågan, visas ett felmeddelande av följande slag:

Msg 824, nivå 24, läge 2, rad 1

SQL Server upptäckte en logisk konsekvens-baserade i/o-fel: felaktig kontrollsumma (förväntat: 0x50758180; faktiska: 0x15658bfc). Det uppstod vid läsning av sida (1:336) i databas-ID 2 vid förskjutningen 0x000000002a0000 i filen ”C:\Program Files\Microsoft SQL Server\MSSQL10. SQL2008\MSSQL\DATA\tempdb.mdf'. Ytterligare felmeddelanden i SQL Server fel logg- eller händelseloggen kan ge mer detaljerad information. Detta är ett allvarligt fel som hotar databasintegritet och måste åtgärdas omedelbart. Utför en konsekvenskontroll för hela databasen (DBCC CHECKDB). Det här felet kan orsakas av många faktorer. Mer information finns i SQL Server Books Online.

I vissa fall kan du också få ett felmeddelande av följande slag:

Msg 601, nivå 12, läge 3, proceduren procedure namn, nummerkunde inte fortsätta skanna med NOLOCK på datatransport.

En möjlig fråga konstruktion som kan producera dessa fel är följande:

insert #table1select s.col1, s.col2from #table2 s inner loop join #table1 t on s.col3 = t.col3 

Lösning

Korrigeringsfil för problemet gavs först ut i kumulativ uppdatering 3. Mer information om hur du skaffar den kumulativa uppdateringspaket för SQL Server 2008 klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:

960484 Kumulativt uppdateringspaket 3 för SQL Server 2008Obs! Eftersom på byggen är kumulativa, varje ny version av korrigeringsfilen innehåller alla snabbkorrigeringar och säkerhetskorrigering för alla säkerhetskorrigeringar som ingår i föregående SQL Server 2008. Vi rekommenderar att du använder den senaste utgåvan av korrigering som innehåller den här snabbkorrigeringen. Om du vill veta mer klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:

956909 SQL Server 2008 bygger som har getts ut efter SQL Server 2008Du måste aktivera spårningsflagga 4135 efter installation av den kumulativa uppdateringspaket. Om du vill göra detta måste du lägga till den -T4135 startparametern. Eller du kan använda kommandot dbcc traceon(4135) för en viss session.

Lösning

Undvik problemet genom att lägga till en kolumn som har både en klustrad primärnyckel och identity-egenskapen till den temporära tabellen. Till exempel kör följande uttryck om du vill ändra den tillfälliga tabellen:

ALTER TABLE #TempTableADD id integer IDENTITY(1,1) CONSTRAINT id PRIMARY KEY CLUSTERED

Status

Microsoft har bekräftat att detta är ett problem i Microsoft-produkterna som nämns i avsnittet ”gäller”.

Mer information

Även om du får felmeddelandet 824 eller 605 inte i databasen skadas. Dessa felmeddelanden refererar också sidor i tempdb-databasen.Mer information om vilka filer som har ändrats, och information om eventuella särskilda krav gäller det kumulativa uppdateringspaketet som innehåller snabbkorrigeringen som beskrivs i den här artikeln i Microsoft Knowledge Base, klickar du på följande artikelnummer för att visa den artikel i Microsoft Knowledge Base:

960484 Kumulativt uppdateringspaket 3 för SQL Server 2008

SQL Server 2008 R2 BPA-information

SQL Server 2008 R2 Best Practice Analyzer (SQL Server 2008 R2 BPA) innehåller en regel om du vill upptäcka situationer där du inte har den kumulativa uppdateringen eller spårningsflagga aktiverat för det här problemet. SQL Server 2008 R2 BPA stöder både SQL Server 2008 och SQL Server 2008 R2. Om du kör BPA-verktyget och en ”Database Engine - tempdb fel fix eller spåra flagga saknas” varning, måste du kontrollera vilken version av SQL Server och trace-flaggor som är konfigurerade för att aktivera snabbkorrigeringen.

Referenser

Regel programvara

Rubrik för regeln

Regel-ID

SQL Server 2008 R2 BPA-regel

TempDB-fel fix eller spåra flagga saknas

RID3808

Obs! Du kan aktivera spårningsflagga 4135 eller spårningsflagga 4199 att aktivera korrigeringen. Spårningsflagga 4135 infördes i kumulativt uppdateringspaket 3 för SQL Server 2008. Spårningsflagga 4135 finns också i SQL Server 2008 Service Pack 1, SQL Server 2008 Service Pack 2 och SQL Server 2008 R2. Spårningsflagga 4199 introducerades i samlingsuppdateringen 7 för SQL Server 2008, kumulativt uppdateringspaket 7 för SQL Server 2008 Service Pack 1 och kumulativ uppdateringspaket 1 för SQL Server 2008 R2. Mer information om spårningsflagga 4199 klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:

974006 Spårningsflagga 4199 läggs till kontrollen flera query optimering tidigare ändringar under flera trace-flaggor Eftersom det här problemet innebär en kombination av en viss snabbkorrigering build och en spårningsflagga att aktivera korrigeringen, inkluderar vi följande tabell om du vill visa olika scenarier och rekommenderad åtgärd du ska vidta för varje scenario.Mer information om de senaste SQL Server-versioner klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:

957826 Här hittar du information om den senaste SQL Server skapar

Referenser

Mer information om listan build-versioner som är tillgängliga efter utgivningen av SQL Server 2008 klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:

956909 SQL Server 2008 bygger som har getts ut efter SQL Server 2008Mer information om stegvis Servicing modellen för SQL Server klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:

935897 En inkrementell Servicing modell är tillgänglig från SQL Server-teamet att leverera snabbkorrigeringar för rapporterade problemMer information om namngivning schemat för uppdateringar för SQL Server klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:

822499Nytt system för namngivning för Microsoft SQL Server-programuppdateringspaketFör mer information om terminologin för programuppdateringar klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:

824684 Beskrivning av standardterminologin som används för att beskriva Microsoft-programuppdateringar

Behöver du mer hjälp?

Vill du ha fler alternativ?

Utforska prenumerationsförmåner, bläddra bland utbildningskurser, lär dig hur du skyddar din enhet med mera.

Communities hjälper dig att ställa och svara på frågor, ge feedback och få råd från experter med rika kunskaper.

Hade du nytta av den här informationen?

Hur nöjd är du med språkkvaliteten?
Vad påverkade din upplevelse?
Genom att trycka på skicka, kommer din feedback att användas för att förbättra Microsofts produkter och tjänster. IT-administratören kan samla in denna data. Sekretesspolicy.

Tack för din feedback!

×