BUG #: 129341 (Content Maintenance)
VSTS bug number: 409769
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
Razmotrite sljedeći scenarij:
-
U Microsoft SQL Server 2008 pokrenuti upit koji koristi funkciju ISNULL() za odabir vrijednosti koje su u stupcu može postaviti kao null.
-
Tablicu koja sadrži stupac može postaviti kao null spojena s drugom tablicom u stupac mogu postaviti na null.
-
Plan upita koje je stvorio upit Optimizator koristi raspršivanja spoj, na reda ili sortiranje tablice ispod operator SPOJ .
U ovom scenariju, primit ćete sljedeću poruku o pogrešci:
Poruka 681 razinu 16 stanje 3 2Attempting redak kako biste postavili vrijednost ne-NULL-moći stupca na NULL.
Uzrok
Optimizator upit određuje stupac koji se upućuje u funkciju ISNULL() je koji se ne može postaviti kao null jer spoj operator odbacuje NULL vrijednosti. Zatim, u upit plan upit Optimizator ih gura izraz koji je u funkciji ISNULL() ispod JOIN operator. Osim toga, vrijednost izraz može biti NULL. Međutim, upit Optimizator nije ponovno proizlaziti svojstvo nullability za izraz. Zatim, u upit plan rad tablica koristi se implementirati raspršivanja spoj, na reda ili sortiranje tablicu koja sadrži izraz. Uz to, odgovarajući stupac u tablici posao je prijavljen kao koji se ne može postaviti kao null. Kada mehanizam upita SQL Server pokuša umetnite NULL vrijednosti u tablici posao, pojavljuje se pogreška.
Rješenje
Popravak ovog problema prvo objavio u kumulativnu 7 ažuriranje za SQL Server 2008 Service Pack 1. Dodatne informacije o ovom kumulativnim ažuriranjem paketa kliknite sljedeći broj članka u Microsoftovoj bazi znanja:
979065 Kumulativnim ažuriranjem paketa 7 za SQL Server 2008 Service Pack 1Napomena 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:
970365 SQL Server 2008 izgrađuje koji su izdani nakon izdavanja SQL Server 2008 Service Pack 1Hitne popravke za Microsoft SQL Server 2008 kreiraju za određeni servisni paketi za SQL Server. Morate primijeniti hitni popravak SQL Server 2008 Service Pack 1 instalaciju SQL Server 2008 Service Pack 1. Po zadanom, hitnim kojemu SQL Server service Pack uključena je u sljedeći servisni paket za SQL Server.
Zaobilazno rješenje
Da biste zaobišli taj problem, koristite jednu od sljedećih metoda.Metodu 1Uklonite funkciju ISNULL() iz upita. NapomenaBudući da stupac koji je u ovu funkciju potječe iz PRIDRUŽI operator koji odbacuje NULL vrijednosti, funkcija ISNULL() je redundantna.Metodu 2Ponovno napišite upit tako da plan upita koristite raspršivanja spoj, na reda ili tablica sortiranja. Ako, na primjer, ako upit sadrži uvjet ORDER BY, stvorite indeks grupirani ili pokrivaju koja pruža potrebne redoslijed i uključuje sve potrebne stupce. Kada koristite ovu metodu, upit Optimizator koristite tablica sortiranja.
Status
Microsoft je potvrdio da se taj problem pojavljuje u Microsoftovim proizvodima navedenima u odjeljku "Odnosi se na".
Reference
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 problemaDodatne 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 ServerDodatne 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
Author (SME): bruceye
Writer: v-vincli
Tech Reviewer: jpilov; alexek; rajneesh
Editor: v-chliao