Prihláste sa s kontom Microsoft
Prihláste sa alebo si vytvorte konto.
Dobrý deň,
Vyberte iné konto.
Máte viacero kont
Vyberte konto, s ktorým sa chcete prihlásiť.

Microsoft distribuuje Microsoft SQL Server 2008 R2 Service Pack 1 (SP1) opravy ako jeden súbor na stiahnutie. Keďže opravy sú kumulatívne, každé nové vydanie obsahuje všetky rýchlych opráv a všetky opravy zabezpečenia, ktoré boli súčasťou predchádzajúceho vydania balíka SQL Server 2008 R2 Service Pack 1 (SP1) Fix.

Príznaky

Zoberme si nasledujúcu situáciu:

  • V tabuľke v Microsoft SQL Server 2008 R2 alebo Microsoft SQL Server 2012 máte stĺpec Typ údajov datetimeoffset .

  • Vytvoríte index v stĺpci datetimeoffset .

  • Typ údajov datetimeoffset môžete skonvertovať na typ údajov SMALLDATETIME pomocou funkcie obsadenia alebo konvertovania bez argumentu štýlu , alebo keď je hodnota argumentu štýl0.

  • Výsledok funkcie obsadenie alebo konvertovanie sa používa vo filtri v dotaze Transact-SQL.

  • Spustíte dotaz Transact-SQL.

V tomto scenári je výsledok vrátený dotazom nesprávny, pretože filter nefunguje správne. Predpokladajme napríklad, že stĺpec datetimeoffset s názvom "date" obsahuje nasledovné hodnoty:

  • 2011-05-21 23:00:00 -01:00

  • 2011-05-21 23:00:00 +00:00

  • 2011-05-21 23:00:00 +01:00

Spustíte nasledujúci dotaz:

SELECT Date FROM TestTable WHERE CAST(Date AS smalldatetime)= '2011-05-21 23:00:00'

Výsledok dotazu vráti iba jeden riadok. Očakávaný výsledok by však mal vrátiť riadky pre všetky tri hodnoty.

Riešenie

Kumulatívna aktualizácia informácií

SQL Server 2012

Oprava tohto problému bola prvýkrát vydaná v kumulatívnej aktualizácii 3 pre SQL Server 2012. Ďalšie informácie o tomto balíku kumulatívnych aktualizácií nájdete v článku databázy Microsoft Knowledge Base, ktorý sa zobrazí po kliknutí na nasledovné číslo článku:

2723749 Kumulatívna aktualizácia balíka 3 pre SQL Server 2012Poznámka: Pretože zostavy sú kumulatívne, každé nové vydanie opraviť obsahuje všetky rýchlych opráv a všetky opravy zabezpečenia, ktoré boli súčasťou predchádzajúceho SQL servera 2012 opraviť uvoľnenia. Spoločnosť Microsoft odporúča, aby ste zvážili uplatnenie najnovších opráv, ktoré túto rýchlu opravu obsahujú. Ď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:

2692828 Zostavy SQL servera 2012, ktoré boli vydané po vydaní SQL servera 2012 Ak chcete nainštalovať SQL Server 2012, musíte použiť rýchlu opravu SQL servera 2012.

SQL Server 2008 R2 Service Pack 2

Oprava tohto problému bola prvýkrát vydaná v kumulatívnej aktualizácii 1 pre SQL Server 2008 R2 Service Pack 2. Ďalšie informácie o možnostiach získania tohto balíka kumulatívnych aktualizácií nájdete v článku databázy Microsoft Knowledge Base, ktorý sa zobrazí po kliknutí na nasledovné číslo článku:

2720425 Kumulatívna aktualizácia balíka 1 pre SQL Server 2008 R2 Service Pack 2Poznámka: Pretože zostavy sú kumulatívne, každé nové vydanie opraviť obsahuje všetky rýchlych opráv a všetky opravy zabezpečenia, ktoré boli súčasťou predchádzajúceho SQL servera 2008 R2 opraviť uvoľnenia. Odporúčame, aby ste zvážili uplatnenie najnovších opráv, ktoré túto rýchlu opravu obsahujú. Ď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:

2730301 Zostavy SQL servera 2008 R2, ktoré boli vydané po vydaní SQL servera 2008 R2 Service Pack 2

SQL Server 2008 R2 SP1

Oprava tohto problému bola prvýkrát vydaná v kumulatívnej aktualizácii 7. Ďalšie informácie o možnostiach získania tohto balíka kumulatívnych aktualizácií pre SQL Server 2008 R2 Service Pack 1 nájdete v článku databázy Microsoft Knowledge Base, ktorý sa zobrazí po kliknutí na nasledovné číslo článku:

2703282 Kumulatívna aktualizácia balíka 7 pre SQL Server 2008 R2 SP1Poznámka: Pretože zostavy sú kumulatívne, každé nové vydanie opraviť obsahuje všetky rýchlych opráv a všetky opravy zabezpečenia, ktoré boli súčasťou predchádzajúceho SQL servera 2008 R2 Service Pack 1 opraviť uvoľnenia. Odporúčame, aby ste zvážili uplatnenie najnovších opráv, ktoré túto rýchlu opravu obsahujú. Ď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:

2567616 Zostavy SQL servera 2008 R2, ktoré boli vydané po vydaní SQL servera 2008 R2 SP1

Ďalšie informácie

Ak chcete problém reprodukovať, postupujte podľa týchto krokov:

  1. Spustite nasledujúci dotaz s cieľom vytvoriť tabuľku s datetimeoffset stĺpcom a vložiť niektoré záznamy:CREATE TABLE #TestTimeZones (dto datetimeoffset(0)); GO INSERT INTO #TestTimeZones(dto) VALUES ('2011-05-21 23:00:00 -01:00'), ('2011-05-21 23:00:00 +00:00'), ('2011-05-21 23:00:00 +01:00'); GO

  2. Spustite nasledujúci dotaz a môžete vidieť, že všetky tri hodnoty sú v vrátenom výsledku správne uvedené:DECLARE @t smalldatetime = '2011-05-21 23:00:00' SELECT dto AS withoutIndex FROM #TestTimeZones WHERE CAST(dto AS smalldatetime)=@t;

  3. Spustite nasledujúci dotaz s cieľom vytvoriť index v stĺpci "DTO" a zopakovať rovnaký dotaz:CREATE INDEX IX_testTimeZones_Dto ON #TestTimeZones(dto); GO -- Repeat the same query DECLARE @t smalldatetime = '2011-05-21 23:00:00' SELECT dto AS withIndex FROM #TestTimeZones WHERE CAST(dto A smalldatetime)=@t; GO

  4. Znova spustite dotaz v kroku 2. Tentoraz dotaz vráti iba jeden riadok.

  5. Ak chcete odstrániť index a tabuľku, ktorú ste vytvorili, spustite nasledujúci dotaz:DROP INDEX IX_testTimeZones_Dto ON #TestTimeZones; GO DROP TALBE #TestTimeZones; GO

Odkazy

Ďalšie informácie o funkciách OBSADEnia a KONVERTOVAnia nájdete na nasledujúcej webovej lokalite MSDN:

Všeobecné informácie o funkciách OBSADEnia a KONVERTOVAnia na serveri SQL Server

Stav

Spoločnosť Microsoft potvrdzuje, že ide o problém v produktoch spoločnosti Microsoft, ktoré sú uvedené v tomto článku v časti Informácie v tomto článku sa týkajú nasledujúcich produktov.

Potrebujete ďalšiu pomoc?

Chcete ďalšie možnosti?

Môžete preskúmať výhody predplatného, prehľadávať školiace kurzy, naučiť sa zabezpečiť svoje zariadenie a ešte oveľa viac.

Komunity pomôžu s kladením otázok a odpovedaním na ne, s poskytovaním pripomienok a so získavaním informácií od odborníkov s bohatými znalosťami.

Boli tieto informácie užitočné?

Aká je podľa vás jazyková kvalita textu?
Čo sa vám páčilo, prípadne čo nie?
Stlačením tlačidla Odoslať sa vaše pripomienky použijú na zlepšenie produktov a služieb spoločnosti Microsoft. Váš správca IT bude môcť tieto údaje zhromažďovať. Vyhlásenie o ochrane osobných údajov.

Ďakujeme za vaše pripomienky!

×