Popravak: Pogrešci 605 i pogreške 824 kada pokrenete upit koji umeće podatke u privremenu tablicu u SQL Server

Vrijedi za: Microsoft SQL Server 2008 Service Pack 3

Programska pogreška: 50003826 # (SQL hitni popravak)
Microsoft raspodjeljuje popravaka Microsoft SQL Server 2008 kao jednu datoteku radni stol. Jer su kumulativne popravke, svako novo izdanje sadrži sve hitnih popravaka i ispravite sve sigurnosne popravke koji su obuhvaćeni s prethodnim SQL Server 2008 izdanje.

Simptomi


U sustavu SQL Server 2008 pokrenuti upit koji umeće podatke u privremenu tablicu. Iskaz insert sadrži podupit koji upućuje isti privremenu tablicu. Kada pokrenete upit, možete primiti poruku o pogrešci sličnu sljedećoj:
Poruka 605 21 razina 3. stanje, 1Attempt redak za fetch logičke stranice (1:225) u bazi podataka 2 nije uspjela. On pripada alokacije jedinica 281474980315136 da ne 504403158513025024.
Ako ponovo pokrenete upit, primit ćete poruku o pogrešci sličnu sljedećoj:
Poruka 824, razina 24 stanje 2, redak 1
SQL Server otkrio logičke dosljednosti temelji pogrešku/i: nepravilan kontrolni zbroj (očekivani: 0x50758180; stvarni: 0x15658bfc). Ona pojavila tijekom čitanja stranice (1:336) u bazi podataka ID 2 kod pomaka 0x000000002a0000 u datoteci ' C:\Program Files\Microsoft SQL Server\MSSQL10. SQL2008\MSSQL\DATA\tempdb.mdf'. Dodatne poruke u SQL Server pogreška zapisnika ili sustav zapisnik događaja može pružiti više detalja. Ovo je uvjet ozbiljne pogreške koji pretnju integritet baze podataka i moraju se ispraviti odmah. Dovršite Provjera dosljednosti puni baze podataka (DBCC CHECKDB). Uzrok te pogreške može biti mnogo čimbenika; Dodatne informacije potražite na SQL Server knjige na mreži.
U nekim slučajevima možda primiti poruku o pogrešci sličnu sljedećoj:
Poruka 601, razina 12, stanje 3,rocedure nazivProcedure p, redak broj retkanije moguće nastaviti skeniranje s NOLOCK zbog premještanja podataka.
Konstrukta moguće upita koji može proizvesti ovih pogrešaka je kako slijedi:
insert #table1select s.col1, s.col2from #table2 s inner loop join #table1 t on s.col3 = t.col3 

Rješenje


Popravak ovog problema prvo Lansiran u kumulativnu ažuriranje 3. Dodatne informacije o nabavljanju paketa kumulativnim ažuriranjem za SQL Server 2008 kliknite sljedeći broj članka u Microsoftovoj bazi znanja:
960484 Kumulativnim ažuriranjem paketa 3 za SQL Server 2008
Napomena Jer su kumulativne na izgradi, svako novo izdanje popravak sadrži sve hitnih popravaka i ispravite sve sigurnosne popravke koji su obuhvaćeni s prethodnim SQL Server 2008 izdanje. Preporučujemo da razmotrite primjenom najnovije izdanje popravak koji sadrži ovaj hitni popravak. Za više informacija kliknite sljedeći broj članka da biste prikazali članak u Microsoftovoj bazi znanja:
956909 SQL Server 2008 izgrađuje koji su izdani nakon izdavanja SQL Server 2008
Nakon instalacije ovog kumulativnog ažuriranja paketa morate omogućiti praćenje zastavica 4135. Da biste to učinili, možete dodati u -T4135 parametar pokretanja. Ili koristite izjavu dbcc traceon(4135) za određene sesiju.

Zaobilazno rješenje


Da biste zaobišli taj problem, dodajte stupac koji ima Klasterirani primarni ključ i svojstvo identity privremenu tablicu. Pokrenite, na primjer, sljedeći iskaz promijenite privremenu tablicu:
ALTER TABLE #TempTableADD id integer IDENTITY(1,1) CONSTRAINT id PRIMARY KEY CLUSTERED

Status


Microsoft je potvrdio da se taj problem pojavljuje u Microsoftovim proizvodima navedenima u odjeljku "Odnosi se na".

Dodatne informacije


Iako naiđete na poruku o pogrešci 824 ili 605, baza podataka nije oštećena. Također, ove poruke o pogrešci reference stranice iz baze podataka tempdb.Dodatne informacije o promijenjeno što datoteke i informacije o bilo kojem preduvjeta za primjenu kumulativnim ažuriranjem paketa koji sadrži hitni popravak opisan u ovom članku Microsoftove baze znanja kliknite sljedeći broj članka da biste pregledali u članak u Microsoftovoj bazi znanja:
960484 Kumulativnim ažuriranjem paketa 3 za SQL Server 2008

SQL Server 2008 R2 BPA informacije

Na SQL Server 2008 R2 najbolje vježbe Analyzer (SQL Server 2008 R2 BPA) nudi pravilo za otkrivanje situacije u kojima nemate kumulativnim ažuriranjem ili zastavicu praćenja omogućeno da biste rešili ovaj problem. SQL Server 2008 R2 BPA podržava SQL Server 2008 i SQL Server 2008 R2. Ako pokretanje alata BPA i naiđete na "modul baze podataka - tempdb pogreške popravak ili praćenje nedostaje zastavica" upozorenje, imate provjerite verziju SQL Server i zastavice praćenja koja su konfigurirana da biste omogućili ovaj popravak.

Reference

Pravilo softveraNaslov praviloIdentifikator pravilo
SQL Server 2008 R2 BPA pravilopopravak tempdb pogreške ili praćenje nedostaje zastavicaRID3808
Napomena  Možete omogućiti praćenje zastavica 4135 ili praćenja zastavica 4199 omogućite ovaj popravak. Zastavica praćenja 4135 uvedena u kumulativnim ažuriranjem paketa 3 za SQL Server 2008. Prati zastavica 4135 je dostupna u SQL Server 2008 Service Pack 1, SQL Server 2008 Service Pack 2 i SQL Server 2008 R2. Zastavica praćenja 4199 uvedena je u paket 7 kumulativnim ažuriranjem za SQL Server 2008, kumulativnim ažuriranjem paketa 7 za SQL Server 2008 Service Pack 1 i kumulativnim ažuriranjem paketa 1 za SQL Server 2008 R2. Dodatne informacije o praćenja zastavica 4199 kliknite sljedeći broj članka u Microsoftovoj bazi znanja:
 974006 Prati zastavica 4199 se dodaje kontrolu višestruke promjene Optimizator upit prethodno napravljene pod više zastavice praćenja
Jer je popravak za problem uključuje kombinaciju hitnim popravkom međuverzije i praćenja zastavica za omogućavanje popravak, uključujući ćemo u sljedećoj tablici prikazuju različite scenarije i preporučenih akcija koje možete poduzeti za svaki scenarij.Dodatne informacije o najnovijem izgradi SQL Server kliknite sljedeći broj članka u Microsoftovoj bazi znanja:
957826 Gdje pronaći informacije o najnovijim SQL Server izgrađuje

Reference


Dodatne informacije o popisu izgradi koji su dostupni nakon lansiranja SQL Server 2008 kliknite sljedeći broj članka u Microsoftovoj bazi znanja:
956909 SQL Server 2008 izgrađuje koji su izdani nakon izdavanja SQL Server 2008
Dodatne informacije o inkrementalni servisiranja Model za SQL Server, kliknite sljedeći broj članka u Microsoftovoj bazi znanja:
935897 Inkrementalno servisiranja Model je dostupna iz tima SQL Server isporučiti hitnih popravaka za prijavljenog problema
Dodatne informacije o shema imenovanja za SQL Server ažuriranja kliknite sljedeći broj članka u Microsoftovoj bazi znanja:
822499Nova shema imenovanja datoteka za pakete softverskih ažuriranja za Microsoft SQL Server
Dodatne informacije o terminologiji ažuriranje softvera kliknite sljedeći broj članka u Microsoftovoj bazi znanja:
824684 Opis standardne terminologije koja se koristi za opisivanje Microsoftovih softverskih ažuriranja