KB2380361 – RJEŠENJE: poruka o pogrešci prilikom pokretanja spremljene procedure "sp_createstats" u sustavu SQL Server 2008 ili SQL Server 2008 R2 ako tablica sadrži nedeterministički izračunati stupac

Primjenjuje se na
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 distribuira popravke za Microsoft SQL Server 2008 i Microsoft SQL Server 2008 R2 kao jednu datoteku koja se može preuzeti. Budući da su popravci kumulativni, svako novo izdanje sadrži sve hitne popravke i sigurnosne popravke koji su obuhvaćeni prethodnim izdanjem popravaka za SQL Server 2008 ili SQL Server 2008 R2.

Simptomi

Razmotrite sljedeći scenarij:

  • Stvorite tablicu koja sadrži nedeterministički izračunati stupac u bazi podataka sustava SQL Server 2008 ili SQL Server 2008 R2. Da biste, primjerice, stvorili tablicu koja sadrži nedeterministički izračunati stupac, izvršite sljedeću naredbu: CREATE TABLE [dbo]. [T1](
            [Datum rođenja] DATUM,
            [Dob] AS (FLOOR(DATEDIFF(DAY;[DateOfBirth],GETDATE())/(365.0)))))GO Napomena U ovoj je naredbi funkcija GETDATE nedeterministička.

  • Spremljenu proceduru sp_createstats pokrećete da biste poboljšali performanse.

    Napomena Spremljena procedura sp_createstats stvara statistiku od jednog stupca za sve odgovarajuće stupce u bazi podataka

U tom slučaju spremljena procedura sp_createstats ne uspijeva. Stoga statistika za neke stupce koji ispunjavaju uvjete možda nisu stvorena. Osim toga, pojavljuje se sljedeća poruka o pogrešci:

Napomena

poruka 2729, razina 16, županija 1, redak 1

Stupac "Dob" u tablici "dbo.t1" ne može se koristiti u indeksu ili statistici, kao ni kao ključ particije jer nije deterministički.

Uzrok

Taj se problem pojavljuje jer sp_createstats pohranjena procedura ne preskače nedeterminističke izračunate stupce.

Rješenje

Kumulativni podaci o ažuriranju

SQL Server 2008 Service Pack 1

Rješenje tog problema prvi je put objavljeno u kumulativnom ažuriranju 11 za SQL Server 2008 Service Pack 1. Dodatne informacije o tom paketu kumulativnog ažuriranja potražite u članku iz Microsoftove baze znanja pod brojem

2413738 Paket kumulativnog ažuriranja 11 za SQL Server 2008 Service Pack 1
Napomena Budući da su međuverzije kumulativne, svako novo izdanje popravka sadrži sve hitne popravke i sigurnosne popravke koji su obuhvaćeni prethodnim izdanjem popravka za SQL Server 2008. Microsoft preporučuje da razmislite o primjeni najnovijeg izdanja popravka koji sadrži taj hitni popravak. Za više informacija kliknite sljedeći broj članka da biste prikazali članak u Microsoftovoj bazi znanja:

970365 Međuverzije SQL Server 2008 koje su izdane nakon objave servisnog paketa Service Pack 1 SQL Server 2008 Hitni popravci sustava Microsoft SQL Server 2008 stvaraju se za određene servisne pakete SQL Server. Na instalaciju servisnog paketa SQL Server 2008 Service Pack 1 morate primijeniti hitni popravak servisnog paketa SQL Server 2008 Service Pack 1. Prema zadanim postavkama svi hitni popravci koji se nalaze u servisnom paketu za SQL Server uvrštavaju se u sljedeći servisni paket za SQL Server.

SQL Server 2008 Service Pack 2

Rješenje tog problema prvi je put objavljeno u kumulativnom ažuriranju 1 za SQL Server 2008 Service Pack 2. Dodatne informacije o tom paketu kumulativnog ažuriranja potražite u članku iz Microsoftove baze znanja pod brojem

2289254 Kumulativno ažuriranje 1 za SQL Server 2008 Service Pack 2Napomena Budući da su međuverzije kumulativne, svako novo izdanje popravka sadrži sve hitne popravke i sigurnosne popravke obuhvaćene prethodnim izdanjem popravka za SQL Server 2008. Preporučujemo da razmislite o primjeni najnovijeg izdanja popravka koji sadrži taj hitni popravak. Za više informacija kliknite sljedeći broj članka da biste prikazali članak u Microsoftovoj bazi znanja:

2402659 Međuverzije SQL Server 2008 koje su izdane nakon objave servisnog paketa SQL Server 2008 Service Pack 2

SQL Server 2008 Service Pack 2

Rješenje tog problema prvi je put objavljeno u kumulativnom ažuriranju 2 za SQL Server 2008 Service Pack 2. Dodatne informacije o tom paketu kumulativnog ažuriranja potražite u članku iz Microsoftove baze znanja pod brojem

2467239 Paket kumulativnog ažuriranja 2 za SQL Server 2008 Service Pack 2Napomena Budući da su međuverzije kumulativne, svako novo izdanje popravka sadrži sve hitne popravke i sigurnosne popravke obuhvaćene prethodnim izdanjem popravaka za SQL Server 2008. Microsoft preporučuje da razmislite o primjeni najnovijeg izdanja popravka koji sadrži taj hitni popravak. Za više informacija kliknite sljedeći broj članka da biste prikazali članak u Microsoftovoj bazi znanja:

2402659 Međuverzije SQL Server 2008 izdane nakon objave servisnog paketa SQL Server 2008 Service Pack 2 Hitni popravci sustava Microsoft SQL Server 2008 stvaraju se za određene servisne pakete SQL Server. Na instalaciju servisnog paketa SQL Server 2008 Service Pack 2 morate primijeniti hitni popravak za SQL Server 2008 Service Pack 2. Prema zadanim postavkama svi hitni popravci koji se nalaze u servisnom paketu za SQL Server uvrštavaju se u sljedeći servisni paket za SQL Server.

SQL Server 2008 R2

Rješenje tog problema prvi je put izdano u kumulativnom ažuriranju 4. Dodatne informacije o nabavi paketa kumulativnog ažuriranja za SQL Server 2008 R2 potražite u članku iz Microsoftove baze znanja pod sljedećim brojem:

2345451 Paket kumulativnog ažuriranja 4 za SQL Server 2008 R2 Napomena Budući da su međuverzije kumulativne, svako novo izdanje popravka sadrži sve hitne popravke i sigurnosne popravke obuhvaćene prethodnim izdanjem popravaka za SQL Server 2008 R2. Preporučujemo da razmislite o primjeni najnovijeg izdanja popravka koji sadrži taj hitni popravak. Za više informacija kliknite sljedeći broj članka da biste prikazali članak u Microsoftovoj bazi znanja:

981356 međuverzije SQL Server 2008 R2 koje su izdane nakon izdanja sustava SQL Server 2008 R2

Status

Microsoft je potvrdio da je to problem u Microsoftovim proizvodima koji su navedeni u odjeljku „Odnosi se na“.

Reference

Dodatne informacije o determinističkim i nedeterminističkim funkcijama potražite na sljedećem web-mjestu mreže MSDN (Microsoft Developer Network):

Opće informacije o determinističkim i nedeterminističkim funkcijama Dodatne informacije o sp_createstats spremljenoj proceduri potražite na sljedećem MSDN-ovom web-mjestu:

Opće informacije o "sp_createstats" Transact-SQL spremljenoj proceduri Dodatne informacije o izračunatim stupcima potražite na sljedećem MSDN-ovom web-mjestu:

Opće informacije o izračunatim stupcima Dodatne informacije o modelu inkrementalnog servisiranja za SQL Server potražite u članku iz Microsoftove baze znanja pod brojem

935897 Tim za SQL Server dostupan je model inkrementalnog servisiranja za isporuku hitnih popravaka za prijavljene probleme

Dodatne informacije o shemi imenovanja za ažuriranja sustava SQL Server potražite u članku iz Microsoftove baze znanja pod sljedećim brojem:

822499 Nova shema imenovanja za pakete ažuriranja softvera za Microsoft SQL Server Dodatne informacije o terminologiji ažuriranja softvera potražite u članku iz Microsoftove baze znanja pod brojem

824684 Opis standardne terminologije, koja se koristi za opis Microsoftovih softverskih ažuriranja