KB2380361 – OPRAVA: Chybové hlásenie pri spustení uloženej procedúry sp_createstats v SQL Server 2008 alebo SQL Server 2008 R2, ak tabuľka obsahuje nedeterministický vypočítaný stĺpec

Vzťahuje sa 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

Spoločnosť Microsoft distribuuje opravy Microsoft SQL Server 2008 a Microsoft SQL Server 2008 R2 ako jeden súbor na stiahnutie. Keďže opravy sú kumulatívne, každé nové vydanie obsahuje všetky rýchle opravy a opravy zabezpečenia, ktoré boli súčasťou predchádzajúceho vydania opráv SQL Server 2008 alebo SQL Server 2008 R2.

Príznaky

Pozrite si nasledujúci scenár:

  • Môžete vytvoriť tabuľku, ktorá obsahuje nedeterministický vypočítaný stĺpec v databáze SQL Server 2008 alebo SQL Server 2008 R2. Napríklad spustením nasledujúceho príkazu vytvoríte tabuľku, ktorá obsahuje nedeterministický vypočítaný stĺpec: CREATE TABLE [dbo]. [t1](
            [DateOfBirth] DÁTUM
            [Vek] AS (FLOOR(DATEDIFF(DAY;[DateOfBirth];GETDATE())/(365.0))))GO Poznámka V tomto príkaze je funkcia GETDATE nedeterministická.

  • Spustením uloženej procedúry sp_createstats zvýšite výkon.

    Poznámka Uložená procedúra sp_createstats vytvára štatistiku s jedným stĺpcom pre všetky oprávnené stĺpce v databáze

V tomto scenári uložená procedúra sp_createstats zlyhá. Štatistika pre niektoré oprávnené stĺpce preto nemusela byť vytvorená. Okrem toho sa zobrazí nasledujúce chybové hlásenie:

Poznámka

Správa 2729, úroveň 16, stav 1, riadok 1

Stĺpec Vek v tabuľke dbo.t1 nie je možné použiť v indexe alebo štatistike ani ako kľúč oddielu, pretože nie je deterministický.

Príčina

Tento problém sa vyskytuje, pretože uložená procedúra sp_createstats nevynechá nedeterministické vypočítané stĺpce.

Riešenie

Informácie o kumulatívnych aktualizáciách

SQL Server 2008 Service Pack 1

Oprava tohto problému bola prvýkrát vydaná v kumulatívnej aktualizácii 11 pre balík Service Pack 1 pre SQL Server 2008. Ďalšie informácie o tomto balíku kumulatívnych aktualizácií získate po kliknutí na nasledujúce číslo článku publikovaného v databáze Microsoft Knowledge Base:

2413738 Kumulatívny balík aktualizácie 11 pre balík SQL Server 2008 Service Pack 1
Poznámka Keďže zostavy sú kumulatívne, každé nové vydanie opravy obsahuje všetky rýchle opravy a opravy zabezpečenia, ktoré boli zahrnuté v predchádzajúcom vydaní opráv pre SQL Server 2008. Spoločnosť Microsoft odporúča, aby ste zvážili použitie najnovšej opravy, ktorá obsahuje túto opravu. Ďalšie informácie nájdete v článku databázy Microsoft Knowledge Base, ktorý sa zobrazí po kliknutí na príslušné číslo článku:

970365 Zostavy SQL Server 2008, ktoré boli vydané po vydaní balíka Service Pack 1 SQL Server 2008 Rýchle opravy Microsoft SQL Server 2008 sa vytvárajú pre konkrétne balíky Service Pack SQL Server. Na inštaláciu balíka SQL Server 2008 Service Pack 1 je potrebné použiť rýchlu opravu SQL Server 2008 Service Pack 1. Predvolene je každá rýchla oprava, ktorá je súčasťou balíka Service Pack pre SQL Server, zahrnutá do ďalšieho balíka Service Pack SQL Server.

SQL Server 2008 Service Pack 2

Oprava tohto problému bola prvýkrát vydaná v kumulatívnej aktualizácii 1 pre balík Service Pack 2 pre SQL Server 2008. Ďalšie informácie o tomto balíku kumulatívnych aktualizácií získate po kliknutí na nasledujúce číslo článku publikovaného v databáze Microsoft Knowledge Base:

2289254 Kumulatívna aktualizácia 1 pre balík SQL Server 2008 Service Pack 2Note Keďže zostavy sú kumulatívne, každé nové vydanie opravy obsahuje všetky rýchle opravy a opravy zabezpečenia, ktoré boli zahrnuté v predchádzajúcom vydaní opráv SQL Server 2008. Odporúčame, aby ste zvážili použitie najnovšej opravy, ktorá obsahuje túto rýchlu opravu. Ďalšie informácie nájdete v článku databázy Microsoft Knowledge Base, ktorý sa zobrazí po kliknutí na príslušné číslo článku:

2402659 Zostavy SQL Server 2008, ktoré boli vydané po vydaní balíka Service Pack 2 SQL Server 2008

SQL Server 2008 Service Pack 2

Oprava tohto problému bola prvýkrát vydaná v kumulatívnej aktualizácii 2 pre balík SQL Server 2008 Service Pack 2. Ďalšie informácie o tomto balíku kumulatívnych aktualizácií získate po kliknutí na nasledujúce číslo článku publikovaného v databáze Microsoft Knowledge Base:

2467239 Balík kumulatívnej aktualizácie 2 pre balík SQL Server 2008 Service Pack 2Note Keďže zostavy sú kumulatívne, každé nové vydanie opravy obsahuje všetky rýchle opravy a opravy zabezpečenia, ktoré boli zahrnuté v predchádzajúcom vydaní opráv SQL Server 2008. Spoločnosť Microsoft odporúča, aby ste zvážili použitie najnovšej opravy, ktorá obsahuje túto opravu. Ďalšie informácie nájdete v článku databázy Microsoft Knowledge Base, ktorý sa zobrazí po kliknutí na príslušné číslo článku:

2402659 Zostavy SQL Server 2008, ktoré boli vydané po vydaní balíka Service Pack 2 SQL Server 2008 Rýchle opravy Microsoft SQL Server 2008 sa vytvárajú pre konkrétne balíky Service Pack SQL Server. Na inštaláciu balíka SQL Server 2008 Service Pack 2 je potrebné použiť rýchlu opravu balíka SQL Server 2008 Service Pack 2. Predvolene je každá rýchla oprava, ktorá je súčasťou balíka Service Pack pre SQL Server, zahrnutá do ďalšieho balíka Service Pack SQL Server.

SQL Server 2008 R2

Oprava tohto problému bola prvýkrát vydaná v kumulatívnej aktualizácii 4. Ďalšie informácie o tom, ako získať tento balík kumulatívnej aktualizácie pre SQL Server 2008 R2, získate po kliknutí na nasledujúce číslo článku publikovaného v databáze Microsoft Knowledge Base:

2345451 Cumulative Update package 4 for SQL Server 2008 R2 Poznámka: Keďže zostavy sú kumulatívne, každé nové vydanie opravy obsahuje všetky rýchle opravy a opravy zabezpečenia, ktoré boli zahrnuté v predchádzajúcom vydaní opráv SQL Server 2008 R2. Odporúčame, aby ste zvážili použitie najnovšej opravy, ktorá obsahuje túto rýchlu opravu. Ďalšie informácie nájdete v článku databázy Microsoft Knowledge Base, ktorý sa zobrazí po kliknutí na príslušné číslo článku:

981356 Zostavy SQL Server 2008 R2, ktoré boli vydané po vydaní SQL Server 2008 R2

Stav

Spoločnosť Microsoft potvrdila, že ide o problém v produktoch spoločnosti Microsoft, ktoré sú uvedené v časti Vzťahuje sa na.

Odkazy

Ďalšie informácie o deterministických a nedeterministických funkciách získate na nasledujúcej webovej lokalite siete webová lokalita Microsoft Developer Network (MSDN):

Všeobecné informácie o deterministických a nedeterministických funkciách Ďalšie informácie o uloženej procedúre sp_createstats nájdete na nasledujúcej webovej lokalite MSDN:

Všeobecné informácie o uloženej procedúre Transact-SQL sp_createstats Ďalšie informácie o vypočítaných stĺpcoch nájdete na nasledujúcej webovej lokalite MSDN:

Všeobecné informácie o vypočítaných stĺpcoch Ďalšie informácie o modeli prírastkovej údržby pre SQL Server získate po kliknutí na nasledujúce číslo článku publikovaného v databáze Microsoft Knowledge Base:

935897 Tím SQL Server je k dispozícii prírastkový model údržby, ktorý bude poskytovať rýchle opravy nahlásených problémov

Ďalšie informácie o schéme pomenovania pre aktualizácie SQL Server nájdete v nasledujúcom článku databázy Microsoft Knowledge Base:

822499 Nová schéma pomenovania pre balíky aktualizácií softvéru Microsoft SQL Server Ďalšie informácie o terminológii aktualizácií softvéru získate po kliknutí na nasledujúce číslo článku publikovaného v databáze Microsoft Knowledge Base:

824684 Popis štandardnej terminológie, ktorá sa používa na popis aktualizácií softvéru spoločnosti Microsoft