KB2380361 — IZLABOTS: kļūdas ziņojums, palaižot saglabāto procedūru "sp_createstats" programmā SQL Server 2008 vai SQL Server 2008 R2, ja tabulā ir nedeterministiski aprēķināta kolonna

Attiecas uz
SQL Server 2008 Enterprise SQL Server 2008 Developer SQL Server 2008 Standard SQL Server 2008 Standard Edition for Small Business SQL Server 2008 Workgroup SQL Server 2008 R2 Datacenter SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Standard SQL Server 2008 R2 Workgroup SQL Server 2008 R2 Standard Edition for Small Business

Microsoft izplata Microsoft SQL Server 2008 un Microsoft SQL Server 2008 R2 labojumus kā vienu lejupielādējamu failu. Tā kā labojumi ir kumulatīvi, katrs jaunais laidiens ietver visus labojumfailus un drošības labojumus, kas bija iekļauti iepriekšējā SQL SQL Server 2008 vai SQL Server 2008 R2 labojumu laidienā.

Pazīmes

Apsveriet šādu scenāriju:

  • Izveidojiet tabulu, kurā iekļauta nedeterministiska aprēķinātā kolonna SQL Server 2008 vai SQL Server 2008 R2 datu bāzē. Piemēram, palaižat tālāk norādīto priekšrakstu, lai izveidotu tabulu, kurā ir nedeterministiski aprēķināta kolonna: CREATE TABLE [dbo]. [t1](
            [Dzimšanas datums] DATUMS,
            [Vecums] AS (FLOOR(DATEDIFF(DAY,[DATEOfBirth],GETDATE())/(365.0)))))GO Note Šajā priekšrakstā funkcija GETDATE ir nedeterministiska.

  • Palaidiet sp_createstats saglabāto procedūru, lai uzlabotu veiktspēju.

    Piezīme Procedūra sp_createstats stored izveido vienas kolonnas statistiku visām piemērotajām kolonnām datu bāzē

Šādā gadījumā sp_createstats saglabātā procedūra neizdodas. Tāpēc dažu piemēroto kolonnu statistika, iespējams, nav izveidota. Turklāt tiek rādīts šāds kļūdas ziņojums:

Piezīme

Ziņojums 2729, 16. līmenis, 1. stāvoklis, 1. rindiņa

Kolonnu "Age" tabulā "dbo.t1" nevar izmantot indeksā vai statistikā vai kā nodalījuma atslēgu, jo tā nav deterministiska.

Iemesls

Šī problēma rodas, jo sp_createstats saglabātā procedūra neizlaiž nedeterministiskās aprēķinātās kolonnas.

Risinājums

Kumulatīvā atjauninājuma informācija

SQL Server 2008 1. servisa pakotne

Šīs problēmas labojums pirmo reizi tika izlaists SQL Server 2008 1. servisa pakotnes 11. kumulatīvajā atjauninājumā. Lai iegūtu papildinformāciju par šo kumulatīvo atjauninājumu pakotni, noklikšķiniet uz tālāk norādītā raksta numura un lasiet Microsoft zināšanu bāzes rakstu:

2413738 Kumulatīvā atjauninājuma pakotne 11 SQL Server 2008 1. servisa pakotnei
Piezīme Tā kā būvējumi ir kumulatīvi, katrs jaunais labojumu laidiens ietver visus labojumfailus un drošības labojumus, kas bija iekļauti iepriekšējā SQL Server 2008 labojumu laidienā. Microsoft iesaka apsvērt iespēju lietot jaunāko labojumfailu laidienu, kurā ir iekļauts šis labojumfails. Lai iegūtu papildinformāciju, noklikšķiniet uz tālāk norādītā raksta numura un lasiet Microsoft zināšanu bāzes rakstu:

970365 SQL Server 2008 būvējumi, kas tika izlaisti pēc SQL Server 2008. gada 1. servisa pakotnes izlaišanasMicrosoft SQL Server 2008 labojumfaili ir paredzēti noteiktām SQL Server servisa pakotnēm. SQL Server 2008 1. servisa pakotnes labojumfails ir jālieto SQL Server 2008 1. servisa pakotnes instalācijai. Pēc noklusējuma visi labojumfaili, kas ir iekļauti SQL Server servisa pakotnē, tiek iekļauti nākamajā SQL Server servisa pakotnē.

SQL Server 2008 2. servisa pakotne

Šīs problēmas labojums pirmo reizi tika izlaists SQL Server 2008 2. servisa pakotnes 1. kumulatīvajā atjauninājumā. Lai iegūtu papildinformāciju par šo kumulatīvo atjauninājumu pakotni, noklikšķiniet uz tālāk norādītā raksta numura un lasiet Microsoft zināšanu bāzes rakstu:

2289254 1. kumulatīvais atjauninājums SQL Server 2008 2. servisa pakotnei. Tā kā būvējumi ir kumulatīvi, katrs jaunais labojumu laidiens ietver visus labojumfailus un drošības labojumus, kas bija iekļauti iepriekšējā SQL Server 2008 labojumu laidienā. Iesakām apsvērt tā labojumfaila lietošanu, kurā ir iekļauts šis labojumfails. Lai iegūtu papildinformāciju, noklikšķiniet uz tālāk norādītā raksta numura un lasiet Microsoft zināšanu bāzes rakstu:

2402659 SQL Server 2008 būvējumi, kas tika izlaisti pēc SQL Server 2008. gada 2. servisa pakotnes izlaišanas

SQL Server 2008 2. servisa pakotne

Šīs problēmas labojums pirmo reizi tika izlaists SQL Server 2008 2. servisa pakotnes 2. kumulatīvajā atjauninājumā. Lai iegūtu papildinformāciju par šo kumulatīvo atjauninājumu pakotni, noklikšķiniet uz tālāk norādītā raksta numura un lasiet Microsoft zināšanu bāzes rakstu:

2467239 2. kumulatīvā atjauninājuma pakotne SQL Server 2008 2. servisa pakotnei. Tā kā būvējumi ir kumulatīvi, katrs jaunais labojumu laidiens ietver visus labojumfailus un drošības labojumus, kas bija iekļauti iepriekšējā SQL Server 2008 labojumu laidienā. Microsoft iesaka apsvērt iespēju lietot jaunāko labojumfailu laidienu, kurā ir iekļauts šis labojumfails. Lai iegūtu papildinformāciju, noklikšķiniet uz tālāk norādītā raksta numura un lasiet Microsoft zināšanu bāzes rakstu:

2402659 SQL Server 2008 būvējumi, kas tika izlaisti pēc SQL Server 2008. gada 2. servisa pakotnes izlaišanas Microsoft SQL Server 2008 labojumfaili ir paredzēti konkrētām SQL Server servisa pakotnēm. SQL Server 2008 2. servisa pakotnes labojumfails ir jālieto SQL Server 2008 2. servisa pakotnes instalācijai. Pēc noklusējuma visi labojumfaili, kas ir iekļauti SQL Server servisa pakotnē, tiek iekļauti nākamajā SQL Server servisa pakotnē.

SQL Server 2008 R2

Šīs problēmas labojums pirmo reizi tika izlaists 4. kumulatīvajā atjauninājumā. Lai iegūtu papildinformāciju par to, kā iegūt šo kumulatīvā atjauninājuma pakotni operētājsistēmai SQL Server 2008 R2, noklikšķiniet uz šī raksta numura un lasiet Microsoft zināšanu bāzes rakstu:

2345451 4. kumulatīvā atjauninājuma pakotne operētājsistēmai SQL Server 2008 R2 Piezīme Tā kā būvējumi ir kumulatīvi, katrs jaunais labojumu laidiens ietver visus labojumfailus un drošības labojumus, kas bija iekļauti iepriekšējā SQL Server 2008 R2 labojumu laidienā. Iesakām apsvērt tā labojumfaila lietošanu, kurā ir iekļauts šis labojumfails. Lai iegūtu papildinformāciju, noklikšķiniet uz tālāk norādītā raksta numura un lasiet Microsoft zināšanu bāzes rakstu:

981356 SQL Server 2008 R2 būvējumi, kas tika izlaisti pēc SQL Server 2008 R2 izlaišanas

Statuss

Microsoft apstiprināja, ka šī ir problēma Microsoft produktos, kas norādīti sadaļā "attiecas uz".

Atsauces

Lai iegūtu papildinformāciju par deterministiskajām un nedeterministiskajām funkcijām, apmeklējiet šo Microsoft izstrādātāju tīkla (MSDN) tīmekļa vietni:

Vispārīga informācija par deterministiskām un nedeterministiskām funkcijām Lai iegūtu papildinformāciju par sp_createstats saglabāto procedūru, apmeklējiet šo MSDN tīmekļa vietni:

Vispārīga informācija par "sp_createstats" Transact-SQL saglabāto procedūru Lai iegūtu papildinformāciju par aprēķinātajām kolonnām, apmeklējiet šo MSDN tīmekļa vietni:

Vispārīga informācija par aprēķinātajām kolonnām Lai iegūtu papildinformāciju par SQL Server inkrementālās apkalpošanas modeli, noklikšķiniet uz šī raksta numura un lasiet Microsoft zināšanu bāzes rakstu:

935897 SQL Server komanda piedāvā inkrementālo apkalpošanas modeli, lai nodrošinātu labojumfailus ziņoto problēmu gadījumā

Lai iegūtu papildinformāciju par SQL Server atjauninājumu nosaukumdošanas shēmu, noklikšķiniet uz šī raksta numura un lasiet Microsoft zināšanu bāzes rakstu:

822499 Jauna Microsoft SQL Server programmatūras atjauninājumu pakotņu nosaukumdošanas shēmaLai iegūtu papildinformāciju par programmatūras atjaunināšanas terminoloģiju, noklikšķiniet uz šī raksta numura un lasiet Microsoft zināšanu bāzes rakstu:

824684 Standarta terminoloģijas apraksts, kas tiek izmantots Microsoft programmatūras atjauninājumu aprakstīšanai