Microsoft distribuie Microsoft SQL Server 2008 și Microsoft SQL Server 2008 R2 remedieri ca un fișier descărcabil. Deoarece remedierile sunt cumulative, fiecare lansare nouă conține toate remedierile rapide și toate remedierile de securitate care au fost incluse cu SQL Server 2008 anterioare sau SQL Server 2008 R2 fix release.
Simptome
Luați în considerare următorul scenariu:
-
Creați un tabel care conține o coloană calculată nedeterministă într-o bază de date SQL Server 2008 sau SQL Server 2008 R2. De exemplu, veți executa următoarea instrucțiune pentru a crea un tabel care conține o coloană calculată nedeterminist: CREATE TABLE [dbo].[t1]( [DateOfBirth] DATE, [Age] AS (FLOOR(DATEDIFF(DAY,[DateOfBirth],GETDATE())/(365.0))))GO Notă În această declarație, funcția getdate este nedeterministă.
-
Rulați sp_createstats procedură stocată pentru a îmbunătăți performanța.Notă Procedura sp_createstats stocată creează statistici cu o singură coloană pentru toate coloanele eligibile din baza de date
În acest scenariu, procedura sp_createstats stocată nu reușește. Prin urmare, este posibil ca statisticile pentru unele coloane eligibile să nu fi fost create. În plus, veți primi următorul mesaj de eroare:
MSG 2729, nivel 16, stat 1, linia 1Column ' Age ' din tabel ' dbo. T1 ' nu poate fi utilizat într-un index sau într-o statistică sau ca o cheie de partiție, deoarece nu este determinist.
Cauză
Această problemă apare deoarece procedura sp_createstats stocată nu omite coloanele calculate nedeterministe.
Rezolvare
Informații despre actualizarea cumulativă
SQL Server 2008 Service Pack 1
Remedierea pentru această problemă a fost lansată pentru prima dată în actualizarea cumulativă 11 pentru SQL Server 2008 Service Pack 1. Pentru mai multe informații despre acest pachet de actualizare cumulativă, faceți clic pe următorul număr de articol pentru a vedea articolul în baza de cunoștințe Microsoft:
2413738 Pachetul de actualizare cumulativă 11 pentru SQL Server 2008 Service Pack 1Notă Deoarece compilările sunt cumulative, fiecare nouă versiune de remediere conține toate remedierile rapide și toate remedierile de securitate care au fost incluse cu versiunea anterioară SQL Server 2008 fix release. Microsoft recomandă să luați în considerare aplicarea celei mai recente versiuni de remediere care conține această remediere rapidă. Pentru mai multe informații, faceți clic pe următorul număr de articol pentru a-l vedea în Baza de cunoștințe Microsoft:
970365 SQL Server 2008 construiește care au fost lansate după ce s-a lansat SQL Server 2008 Service Pack 1Sunt create remedieri rapide Microsoft SQL Server 2008 pentru anumite pachete de servicii SQL Server. Trebuie să aplicați o remediere rapidă SQL Server 2008 Service Pack 1 la o instalare de SQL Server 2008 Service Pack 1. În mod implicit, orice remediere rapidă furnizată într-un pachet de servicii SQL Server este inclusă în următorul pachet de servicii SQL Server.
SQL Server 2008 Service Pack 2
Remedierea pentru această problemă a fost lansată pentru prima dată în actualizarea cumulativă 1 pentru SQL Server 2008 Service Pack 2. Pentru mai multe informații despre acest pachet de actualizare cumulativă, faceți clic pe următorul număr de articol pentru a vedea articolul în baza de cunoștințe Microsoft:
2289254 Actualizarea cumulativă 1 pentru SQL Server 2008 Service Pack 2Notă Deoarece compilările sunt cumulative, fiecare nouă versiune de remediere conține toate remedierile rapide și toate remedierile de securitate care au fost incluse cu versiunea anterioară SQL Server 2008 fix release. Vă recomandăm să luați în considerare aplicarea celei mai recente versiuni de remediere care conține această remediere rapidă. Pentru mai multe informații, faceți clic pe următorul număr de articol pentru a-l vedea în Baza de cunoștințe Microsoft:
2402659 SQL Server 2008 construiește care au fost lansate după ce s-a lansat SQL Server 2008 Service Pack 2
SQL Server 2008 Service Pack 2
Remedierea pentru această problemă a fost lansată pentru prima dată în actualizarea cumulativă 2 pentru SQL Server 2008 Service Pack 2. Pentru mai multe informații despre acest pachet de actualizare cumulativă, faceți clic pe următorul număr de articol pentru a vedea articolul în baza de cunoștințe Microsoft:
2467239 Pachetul de actualizare cumulativă 2 pentru SQL Server 2008 Service Pack 2Notă Deoarece compilările sunt cumulative, fiecare nouă versiune de remediere conține toate remedierile rapide și toate remedierile de securitate care au fost incluse cu versiunea anterioară SQL Server 2008 fix release. Microsoft recomandă să luați în considerare aplicarea celei mai recente versiuni de remediere care conține această remediere rapidă. Pentru mai multe informații, faceți clic pe următorul număr de articol pentru a-l vedea în Baza de cunoștințe Microsoft:
2402659 SQL Server 2008 construiește care au fost lansate după ce s-a lansat SQL Server 2008 Service Pack 2 Sunt create remedieri rapide Microsoft SQL Server 2008 pentru anumite pachete de servicii SQL Server. Trebuie să aplicați o remediere rapidă SQL Server 2008 Service Pack 2 la o instalare de SQL Server 2008 Service Pack 2. În mod implicit, orice remediere rapidă furnizată într-un pachet de servicii SQL Server este inclusă în următorul pachet de servicii SQL Server.
SQL Server 2008 R2
Remedierea pentru această problemă a fost lansată pentru prima dată în actualizarea cumulativă 4. Pentru mai multe informații despre cum se obține acest pachet de actualizare cumulativă pentru SQL Server 2008 R2, faceți clic pe următorul număr de articol pentru a vedea articolul în baza de cunoștințe Microsoft:
2345451 Pachetul de actualizare cumulativă 4 pentru SQL Server 2008 R2 Notă Deoarece compilările sunt cumulative, fiecare nouă versiune de remediere conține toate remedierile rapide și toate remedierile de securitate care au fost incluse cu versiunea anterioară SQL Server 2008 R2 remediată. Vă recomandăm să luați în considerare aplicarea celei mai recente versiuni de remediere care conține această remediere rapidă. Pentru mai multe informații, faceți clic pe următorul număr de articol pentru a-l vedea în Baza de cunoștințe Microsoft:
981356 SQL Server 2008 R2 construiește care au fost lansate după ce s-a lansat SQL Server 2008 R2
Stare
Microsoft a confirmat că aceasta este o problemă în produsele Microsoft enumerate în secțiunea „Se aplică la”.
Referințe
Pentru mai multe informații despre funcțiile deterministe și nedeterministe, vizitați următorul site Web Microsoft Developer Network (MSDN):
Informații generale despre funcțiile deterministe și nedeterministePentru mai multe informații despre procedura sp_createstats stocată, vizitați următorul site Web MSDN:
Informații generale despre procedura stocată "sp_createstats" Transact-SQLPentru mai multe informații despre coloanele calculate, vizitați următorul site Web MSDN:
Informații generale despre coloanele calculatePentru mai multe informații despre modelul de întreținere incrementală pentru SQL Server, faceți clic pe următorul număr de articol pentru a vedea articolul în baza de cunoștințe Microsoft:
935897 Un model de întreținere incrementală este disponibil de la echipa SQL Server pentru a livra remedieri rapide pentru problemele raportatePentru mai multe informații despre schema de denumire pentru actualizările SQL Server, faceți clic pe următorul număr de articol pentru a vedea articolul în baza de cunoștințe Microsoft:
822499Schemă nouă de denumire pentru pachetele de actualizare software Microsoft SQL ServerPentru mai multe informații despre terminologia actualizării software-ului, faceți clic pe următorul număr de articol pentru a vedea articolul în baza de cunoștințe Microsoft:
824684 Descrierea terminologiei standard care este utilizată pentru a descrie actualizările de software Microsoft