KB2380361 – JAVÍTÁS: Hibaüzenet jelenik meg a tárolt sp_createstats eljárás futtatásakor a SQL Server 2008-ban vagy a SQL Server 2008 R2-ben, ha a tábla egy nem determinisztikus számított oszlopot tartalmaz

Hatókör
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

A Microsoft a Microsoft SQL Server 2008 és a Microsoft SQL Server 2008 R2 javításokat egyetlen letölthető fájlként terjeszti. Mivel a javítások egymásra épülnek, minden új kiadás tartalmazza az összes gyorsjavítást és minden biztonsági javítást, amely az előző SQL Server 2008- vagy SQL Server 2008 R2-javításban szerepelt.

Tünetek

Vegyük például a következő esetet:

  • Olyan táblát hoz létre, amely nem determinisztikus számított oszlopot tartalmaz egy SQL Server 2008- vagy SQL Server 2008 R2-adatbázisban. Egy nem determinisztikus számított oszlopot tartalmazó tábla létrehozásához például a következő utasítást futtathatja: CREATE TABLE [dbo]. [T1](
            [Születési dátum] DÁTUM,
            [Kor] AS (FLOOR(DATEDIFF(DAY,[DATEOfBirth],GETDATE())/(365.0))))GO Megjegyzés Ebben az utasításban a GETDATE függvény nem determinisztikus.

  • A sp_createstats tárolt eljárásának futtatásával javíthatja a teljesítményt.

    Megjegyzés: A sp_createstats tárolt eljárás egyoszlopos statisztikákat hoz létre az adatbázis bármely jogosult oszlopához

Ebben az esetben a sp_createstats tárolt eljárása meghiúsul. Ezért előfordulhat, hogy néhány jogosult oszlop statisztikája nem jött létre. Ezenkívül az alábbihoz hasonló hibaüzenet is megjelenik:

Megjegyzés

Msg 2729, Level 16, State 1, Line 1

A "dbo.t1" tábla "Kor" oszlopa nem használható indexben vagy statisztikában, illetve partíciókulcsként, mivel nem determinisztikus.

Ok

A problémát az okozza, hogy a sp_createstats tárolt eljárása nem hagyta ki a nem determinisztikus számított oszlopokat.

Megoldás

Összegző frissítéssel kapcsolatos információk

SQL Server 2008 Service Pack 1

A hiba javítását először az SQL Server 2008 Service Pack 1 11. összegző frissítésében adtuk ki. Az összegző frissítési csomagról a Microsoft Tudásbázis alábbi cikkében tájékozódhat:

2413738 11-es összegző frissítőcsomag a SQL Server 2008 Service Pack 1-hez
Megjegyzés: Mivel a buildek összegzőek, minden új javításkiadás tartalmazza az összes gyorsjavítást és minden biztonsági javítást, amely az előző SQL Server 2008-javításban szerepelt. A Microsoft azt javasolja, hogy fontolja meg az ezt a gyorsjavítást tartalmazó legújabb javítás telepítését. További információ a Microsoft Tudásbázis következő számú cikkében olvasható (a cikk megnyitásához kattintson a sorszámra):

970365 A SQL Server 2008 Service Pack 1 kiadása után kiadott SQL Server 2008-as buildekA Microsoft SQL Server 2008 gyorsjavításai meghatározott SQL Server szervizcsomagokhoz készültek. Az SQL Server 2008 Service Pack 1 telepítéséhez telepítenie kell az SQL Server 2008 Service Pack 1 gyorsjavítását. Alapértelmezés szerint az SQL Server szervizcsomagjában található összes gyorsjavítás megtalálható a következő SQL Server szervizcsomagban.

SQL Server 2008 Service Pack 2

A hiba javítását először az SQL Server 2008 Service Pack 2 1. összegző frissítésében adták ki. Az összegző frissítési csomagról a Microsoft Tudásbázis alábbi cikkében tájékozódhat:

2289254 1. összegző frissítés a SQL Server 2008 Service Pack 2-hözMegjegyzés: Mivel a buildek kumulatívak, minden új javításkiadás tartalmazza az előző, 2008-as SQL Server javításban szereplő összes gyorsjavítást és biztonsági javítást. Javasoljuk, hogy fontolja meg a gyorsjavítást tartalmazó legújabb javítás telepítését. További információ a Microsoft Tudásbázis következő számú cikkében olvasható (a cikk megnyitásához kattintson a sorszámra):

2402659 A SQL Server 2008-as szervizcsomag 2 után megjelent SQL Server 2008-as buildek

SQL Server 2008 Service Pack 2

A hiba javítását először az SQL Server 2008 Service Pack 2 2-es összegző frissítésében adtuk ki. Az összegző frissítési csomagról a Microsoft Tudásbázis alábbi cikkében tájékozódhat:

2467239 2008-as szervizcsomag 2-es összegző frissítője a 2008-as SQL Server-hozMegjegyzés: Mivel a buildek kumulatívak, minden új javítás tartalmazza az előző, 2008-as SQL Server-as javítás összes gyorsjavítását és biztonsági javítását. A Microsoft azt javasolja, hogy fontolja meg az ezt a gyorsjavítást tartalmazó legújabb javítás telepítését. További információ a Microsoft Tudásbázis következő számú cikkében olvasható (a cikk megnyitásához kattintson a sorszámra):

2402659 A SQL Server 2008-as szervizcsomag 2 megjelenése után kiadott SQL Server 2008-as buildek A Microsoft SQL Server 2008 gyorsjavításai meghatározott SQL Server szervizcsomagokhoz készültek. Az SQL Server 2008 Service Pack 2 telepítéséhez telepítenie kell az SQL Server 2008 Service Pack 2 gyorsjavítását. Alapértelmezés szerint az SQL Server szervizcsomagjában található összes gyorsjavítás megtalálható a következő SQL Server szervizcsomagban.

SQL Server 2008 R2

A hiba javítását először a 4. összegző frissítésben adtuk ki. Az SQL Server 2008 R2-höz kiadott összegző frissítőcsomag beszerzéséről a Microsoft Tudásbázis alábbi cikkében tájékozódhat:

2345451 4-es összegző frissítőcsomag a SQL Server 2008 R2-höz Megjegyzés: Mivel a buildek kumulatívak, minden új javításkiadás tartalmazza az SQL Server 2008 R2 előző kiadásában szereplő összes gyorsjavítást és biztonsági javítást. Javasoljuk, hogy fontolja meg a gyorsjavítást tartalmazó legújabb javítás telepítését. További információ a Microsoft Tudásbázis következő számú cikkében olvasható (a cikk megnyitásához kattintson a sorszámra):

981356 Megjelentek a SQL Server 2008 R2 utáni SQL Server 2008 R2 buildek

Állapot

A Microsoft megerősítette, hogy ez egy olyan probléma a Microsoft-termékekben, amely az „Érintett szolgáltatás“ című szakaszban van felsorolva.

Hivatkozások

A determinisztikus és a nem determinisztikus függvényekről a Microsoft Developer Network (MSDN) alábbi webhelyein talál további információt:

Általános információ a determinisztikus és a nem determinisztikus függvényekről A sp_createstats tárolt eljárásról az MSDN alábbi webhelyén talál további információt:

Általános információk a tárolt "sp_createstats" Transact-SQL eljárással kapcsolatban A számított oszlopokról az MSDN alábbi webhelyén talál további információt:

Általános információk a számított oszlopokról Az SQL Server növekményes karbantartási modelljéről a Microsoft Tudásbázis alábbi cikkében tájékozódhat:

935897 A SQL Server csapatától elérhető egy növekményes karbantartási modell a jelentett problémák gyorsjavításához

Az SQL Server frissítéseihez szükséges elnevezési sémáról a Microsoft Tudásbázis alábbi cikkében tájékozódhat:

822499 Új elnevezési séma a Microsoft SQL Server szoftverfrissítési csomagjaihoz A szoftverfrissítések terminológiájáról a Microsoft Tudásbázis alábbi cikkében tájékozódhat:

824684 A Microsoft szoftverfrissítéseinek leírására használt szabványos terminológia leírása