Logige sisse Microsofti kontoga
Logige sisse või looge konto.
Tere!
Valige mõni muu konto.
Teil on mitu kontot
Valige konto, millega soovite sisse logida.

Microsoft jagab Microsoft SQL Server 2008 R2 hoolduspaketiga Service Pack 1 (SP1) fikseerib ühe allalaaditava failitüübina. Kuna parandused on kumulatiivsed, sisaldab iga uus versioon kõiki Kiirparandusi ja kõiki turvaparandusi, mis kuulusid koos eelmiste SQL Server 2008 R2 hoolduspaketiga Service Pack 1 (SP1) parandada vabastamist.

Sümptomid

Arvestage järgmise stsenaariumiga.

  • Microsoft SQL Server 2008 R2 või Microsoft SQL Server 2012 tabelis on datetimeoffset andmetüüp.

  • Registri loomine datetimeoffset veergu.

  • Teisendate andmetüübi datetimeoffset smalldatetime , kasutades funktsiooni cast või convert , laadimata või kui Laadi argumendi väärtus on 0.

  • Funktsiooni cast või convert tulemit kasutatakse Transact-SQL-i päringus olevas filtris.

  • Transact-SQL-päringut käitate.

Selle stsenaariumi korral on päringu tagastatud tulem vale, kuna filter ei tööta õigesti. Oletagem näiteks, et datetimeoffset veerg, mille nimi on "Date", sisaldab järgmisi väärtusi.

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

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

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

Käivitage järgmine päring.

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

Päringu tulem tagastatakse ainult ühe rea võrra. Oodatav tulem peaks tagastama read kõigi kolme väärtuse jaoks.

Lahendus

Kumulatiivse värskenduse teave

SQL Server 2012

Selle probleemi lahendus anti esmakordselt välja kumulatiivne Update 3 for SQL Server 2012. Selle kumulatiivse värskenduspaketi kohta lisateabe saamiseks klõpsake Microsofti teabebaasi (Knowledge Base) artikli kuvamiseks järgmist artiklinumbrit:

2723749 SQL Serveri 2012 koondvärskenduses pakett 3Märkus. Kuna järgud on kumulatiivsed, sisaldab iga uus parandus kõiki Kiirparandusi ja kõiki turvaparandusi, mis kuulusid eelmise SQL Serveri 2012 Fix väljalaskega. Microsoft soovitab, et te loobuksid kõige uuemate paranduste lubamisest, mis sisaldavad seda käigultparandust. Lisateabe saamiseks klõpsake Microsofti teabebaasi (Knowledge Base) artikli kuvamiseks järgmist artiklinumbrit:

2692828 Pärast SQL Server 2012 väljaandmist väljaantud SQL Serveri 2012 järgud Peate rakendama SQL Serveri 2012 käigultparanduse SQL Server 2012 installimisel.

SQL Server 2008 R2 hoolduspakett SP2

Selle probleemi lahendus anti esmakordselt välja kumulatiivne Update 1 for SQL Server 2008 R2 hoolduspakett SP2. Selle kumulatiivse värskenduspaketi hankimise kohta lisateabe saamiseks klõpsake Microsofti teabebaasi (Knowledge Base) artikli kuvamiseks järgmist artiklinumbrit:

2720425 SQL Server 2008 R2 hoolduspaketi SP2 koondvärskenduses pakett 1Märkus. Kuna järgud on kumulatiivsed, sisaldab iga uus parandus kõiki Kiirparandusi ja kõiki turvaparandusi, mis kuulusid eelmise SQL serveri 2008 R2 paranduse väljalaskes. Soovitame teil kaaluda kõige uuemate paranduste rakendamist, mis sisaldavad seda käigultparandust. Lisateabe saamiseks klõpsake Microsofti teabebaasi (Knowledge Base) artikli kuvamiseks järgmist artiklinumbrit:

2730301 Pärast SQL Server 2008 R2 hoolduspaketti SP2 välja antud SQL Server 2008 R2 järgud

SQL Server 2008 R2 hoolduspakett SP1

Selle probleemi parandus anti esmakordselt välja kumulatiivne Update 7. Lisateavet selle kumulatiivse värskenduspaketi hankimiseks SQL Server 2008 R2 hoolduspaketi Service Pack 1 kohta klõpsake Microsofti teabebaasi (Knowledge Base) artikli kuvamiseks järgmist artiklinumbrit:

2703282 Koondvärskenduses pakett 7 SQL Server 2008 R2 hoolduspaketi SP1 jaoksMärkus. Kuna järgud on kumulatiivsed, sisaldab iga uus parandus kõiki Kiirparandusi ja kõiki turvaparandusi, mis kuulusid eelmiste SQL Server 2008 R2 hoolduspaketiga Service Pack 1 paranduse väljalaskeks. Soovitame teil kaaluda kõige uuemate paranduste rakendamist, mis sisaldavad seda käigultparandust. Lisateabe saamiseks klõpsake Microsofti teabebaasi (Knowledge Base) artikli kuvamiseks järgmist artiklinumbrit:

2567616 Pärast SQL Server 2008 R2 hoolduspaketti SP1 väljaantud SQL serveri 2008 R2 järgud

Lisateave

Probleemi reprodutseerimiseks tehke järgmist.

  1. Käivitage järgmine päring, et luua tabel datetimeoffset veeruga ja lisada kirjeid.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. Käivitage järgmine päring ja te näete, et tagastatud tulemis on kõik kolm väärtust õigesti loetletud.DECLARE @t smalldatetime = '2011-05-21 23:00:00' SELECT dto AS withoutIndex FROM #TestTimeZones WHERE CAST(dto AS smalldatetime)=@t;

  3. Käivitage järgmine päring, et luua veerus "DTO" indeks ja korrata sama päringut.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. Käivitage päring uuesti juhises 2. Seekord annab päring ainult ühe rea.

  5. Registri ja teie loodud tabeli kustutamiseks käivitage järgmine päring.DROP INDEX IX_testTimeZones_Dto ON #TestTimeZones; GO DROP TALBE #TestTimeZones; GO

Viited

Funktsioonide CAST ja CONVERT kohta lisateabe saamiseks külastage järgmist MSDN-i veebisaiti:

Üldine teave SQL serveri funktsioonide CAST ja CONVERT kohta

Olek

Microsoft on kinnitanud, et see probleem esineb jaotises "kehtib järgmiste toodete kohta" loetletud Microsofti toodetes.

Kas vajate veel abi?

Kas soovite rohkem valikuvariante?

Siin saate tutvuda tellimusega kaasnevate eelistega, sirvida koolituskursusi, õppida seadet kaitsma ja teha veel palju muud.

Kogukonnad aitavad teil küsimusi esitada ja neile vastuseid saada, anda tagasisidet ja saada nõu rikkalike teadmistega asjatundjatelt.

Kas sellest teabest oli abi?

Kui rahul te keelekvaliteediga olete?
Mis mõjutas teie hinnangut?
Kui klõpsate nuppu Edasta, kasutatakse teie tagasisidet Microsofti toodete ja teenuste täiustamiseks. IT-administraator saab neid andmeid koguda. Privaatsusavaldus.

Täname tagasiside eest!

×