Microsoft distribuerar Microsoft SQL Server 2008- och Microsoft SQL Server 2008 R2-korrigeringar som en nedladdningsbar fil. Eftersom korrigeringarna är kumulativa innehåller varje ny utgåva alla snabbkorrigeringar och alla säkerhetskorrigeringar som ingick i den tidigare korrigeringsversionen för SQL Server 2008 eller SQL Server 2008 R2.
Symptom
Tänk dig följande scenario:
Du skapar en tabell som innehåller en icke-deterministisk beräknad kolumn i en SQL Server 2008- eller SQL Server 2008 R2-databas. Du kan till exempel köra följande instruktion för att skapa en tabell som innehåller en icke-deterministisk beräknad kolumn: CREATE TABLE [dbo]. [T1](
[Födelsedatum] DATUM,
[Ålder] AS (FLOOR(DATEDIFF(DAY,[DateOfBirth],GETDATE())/(365.0))))GO Note I den här satsen är funktionen HÄMTADATUM icke-deterministisk.Du kör den lagrade proceduren sp_createstats för att förbättra prestanda.
Obs! Den lagrade proceduren sp_createstats skapar statistik med en kolumn för alla kvalificerade kolumner i databasen
I det här scenariot misslyckas sp_createstats lagrade proceduren. Därför kan det hända att statistiken för vissa kvalificerade kolumner inte har skapats. Dessutom visas följande felmeddelande:
Obs
Msg 2729, nivå 16, status 1, rad 1
Kolumnen "Age" i tabellen "dbo.t1" kan inte användas i ett index eller statistik eller som en partitionsnyckel eftersom den är icke-deterministisk.
Orsak
Det här problemet beror på att den lagrade proceduren sp_createstats inte hoppar över de icke-deterministiska beräknade kolumnerna.
Lösning
Information om kumulativ uppdatering
SQL Server 2008 Service Pack 1
Korrigeringen för det här problemet släpptes först i kumulativ uppdatering 11 för SQL Server 2008 Service Pack 1. Om du vill veta mer om det här kumulativa uppdateringspaketet klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:
2413738 Kumulativ uppdateringspaket 11 för SQL Server 2008 Service Pack 1
Eftersom versionerna är kumulativa innehåller varje ny korrigeringsversion alla snabbkorrigeringar och alla säkerhetskorrigeringar som ingick i den tidigare SQL Server 2008-korrigeringsversionen. Microsoft rekommenderar att du installerar den senaste korrigeringsversionen som innehåller den här snabbkorrigeringen. Mer information om hur du åtgärdar det här problemet får du om du klickar på följande artikelnummer i Microsoft Knowledge Base:
970365 Snabbkorrigeringar för SQL Server 2008 som släpptes efter att SQL Server 2008 Service Pack 1 släpptesSnabbkorrigeringar för Microsoft SQL Server 2008 skapas för specifika SQL Server Service Pack-versioner. Du måste använda en snabbkorrigering för SQL Server 2008 Service Pack 1 på en installation av SQL Server 2008 Service Pack 1. Som standard ingår snabbkorrigeringar i en SQL Server Service Pack i nästa SQL Server Service Pack.
SQL Server 2008 Service Pack 2
Korrigeringen för det här problemet släpptes först i kumulativ uppdatering 1 för SQL Server 2008 Service Pack 2. Om du vill veta mer om det här kumulativa uppdateringspaketet klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:
2289254 Kumulativ uppdatering 1 för SQL Server 2008 Service Pack 2Note Eftersom versionerna är kumulativa innehåller varje ny korrigeringsversion alla snabbkorrigeringar och säkerhetskorrigeringar som ingick i den tidigare SQL Server 2008-korrigeringsversionen. Vi rekommenderar att du installerar den senaste snabbkorrigeringen som innehåller den här snabbkorrigeringen. Mer information om hur du åtgärdar det här problemet får du om du klickar på följande artikelnummer i Microsoft Knowledge Base:
2402659 De SQL Server 2008-versionerna som släpptes efter att SQL Server 2008 Service Pack 2 släpptes
SQL Server 2008 Service Pack 2
Korrigeringen för det här problemet släpptes först i kumulativ uppdatering 2 för SQL Server 2008 Service Pack 2. Om du vill veta mer om det här kumulativa uppdateringspaketet klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:
2467239 Kumulativ uppdatering paket 2 för SQL Server 2008 Service Pack 2Note Eftersom versionerna är kumulativa innehåller varje ny korrigeringsversion alla snabbkorrigeringar och säkerhetskorrigeringar som ingick i den tidigare SQL Server 2008-korrigeringsversionen. Microsoft rekommenderar att du installerar den senaste korrigeringsversionen som innehåller den här snabbkorrigeringen. Mer information om hur du åtgärdar det här problemet får du om du klickar på följande artikelnummer i Microsoft Knowledge Base:
2402659 Snabbkorrigeringar för SQL Server 2008 som släpptes efter att SQL Server 2008 Service Pack 2 släpptes Snabbkorrigeringar för Microsoft SQL Server 2008 skapas för specifika SQL Server Service Pack-versioner. Du måste använda en snabbkorrigering för SQL Server 2008 Service Pack 2 på en installation av SQL Server 2008 Service Pack 2. Som standard ingår snabbkorrigeringar i en SQL Server Service Pack i nästa SQL Server Service Pack.
SQL Server 2008 R2
Korrigeringen för det här problemet släpptes först i kumulativ uppdatering 4. Om du vill veta mer om hur du hämtar det här kumulativa uppdateringspaketet för SQL Server 2008 R2 klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:
2345451 kumulativt uppdateringspaket 4 för SQL Server 2008 R2 Obs! Eftersom versionerna är kumulativa innehåller varje ny korrigeringsversion alla snabbkorrigeringar och säkerhetskorrigeringar som ingick i den tidigare SQL Server 2008 R2-korrigeringsversionen. Vi rekommenderar att du installerar den senaste snabbkorrigeringen som innehåller den här snabbkorrigeringen. Mer information om hur du åtgärdar det här problemet får du om du klickar på följande artikelnummer i Microsoft Knowledge Base:
981356 De SQL Server 2008 R2-versionerna som släpptes efter att SQL Server 2008 R2 släpptes
Status
Microsoft har bekräftat att detta är ett problem i de Microsoft-produkter som anges i avsnittet "Gäller".
Referenser
Mer information om deterministiska och icke-deterministiska funktioner finns på följande MSDN-webbplats (Microsoft Developer Network):
Allmän information om deterministiska och icke-deterministiska funktioner Mer information om den lagrade proceduren sp_createstats finns på följande MSDN-webbplats:
Allmän information om den lagrade proceduren "sp_createstats" Transact-SQL Mer information om beräknade kolumner finns på följande MSDN-webbplats:
Allmän information om beräknade kolumner Om du vill veta mer om modellen för inkrementell service för SQL Server klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:
935897 En stegvis servicemodell är tillgänglig från SQL Server-teamet för att leverera snabbkorrigeringar för rapporterade problem
Om du vill veta mer om namnschemat för SQL Server uppdateringar klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:
822499 Nytt namnschema för Microsoft SQL Server programuppdateringspaketOm du vill veta mer om terminologi för programvaruuppdateringar 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 Microsofts programuppdateringar