KB2589980 – FIX: klaidingi rezultatai arba apribojimo pažeidimas paleidus žymėjimo arba DML sakinį, kuris naudoja funkciją row_number ir lygiagretaus vykdymo planą "SQL Server 2008"

"Microsoft" platina "Microsoft SQL Server" 2008 pataisymus kaip vieną atsisiunčiamą failą. Kadangi pataisymai yra kumuliacinės, kiekviename naujame leidime yra visos karštosios pataisos ir visos saugos pataisos, kurios buvo pridėtos prie ankstesnio SQL serverio 2008 pataisų leidimo.

Simptomai

Apsvarstykite šį scenarijų:

  • Vykdote lygiagrečią užklausą, kuri naudoja funkciją Row_number "Microsoft SQL Server" 2008.

  • Bandote paleisti užklausą naudodami antrinę užklausą, kuri yra sakinyje Select arba duomenų manipuliavimo kalba (DML).

Šiame scenarijuje susidūrėte su viena iš šių problemų:

  • Gaunate neteisingus rezultatus, jei užklausą pasirenkate daug kartų sakinyje Select .

  • Lentelėje gali būti neteisingų duomenų, jei užklausa vykdoma DML patvirtinime. Jei lentelė turi apribojimų, sakinys gali nepavykti dėl apribojimo pažeidimo. Pavyzdžiui, gali nepavykti Įterpti sakinio ir pirminio rakto pažeidimo klaida įvyksta, jei lentelė turi pirminį raktą.

Pastaba Šios problemos gali kilti dėl vienos iš šių situacijų:

  • Nustatysite parinktį MAXDOP užklausos užuominos reikšmę, kuri yra didesnė nei 2.

  • Nustatykite maksimalaus lygiagretumo laipsnio reikšmę į reikšmę, kuri yra didesnė nei 2 serverio konfigūracijoje.

Sprendimas

Norėdami išspręsti šią problemą, Įsigykite naujausią "SQL Server 2008" pakeitimų paketą. Jei reikia daugiau informacijos, spustelėkite toliau esantį straipsnio numerį ir peržiūrėkite straipsnį "Microsoft" žinių bazėje:

968382 Kaip įsigyti naujausią "SQL Server 2008" pakeitimų paketą

Sprendimas

Norėdami išspręsti šią problemą, naudokite vieną iš šių būdų:

  • Įjunkite "4134" sekimo vėliavėlę, jei pritaikėte vieną iš šių naujinimų:

    • Kaupiamojo naujinimo paketas 6 SQL serverio 2008 arba vėlesnė kaupiamojo naujinimo paketas, skirtas "SQL Server 2008"

    • Kaupiamojo naujinimo paketas 2 SQL serverio 2008 1 pakeitimų paketui (SP1) arba vėlesnė kaupiamojo naujinimo paketą, skirtą "SQL Server" 2008 SP1

    Daugiau informacijos apie tai, kaip įgalinti sekimo žymes, rasite apsilankę šioje MSDN svetainėje:

    Kaip įgalinti sekimo žymes

  • "Microsoft" žinių bazės straipsnio 970198 skyriaus "sprendimo būdas" nuoroda. Jei reikia daugiau informacijos, spustelėkite toliau esantį straipsnio numerį ir peržiūrėkite straipsnį "Microsoft" žinių bazėje:

    970198 PATAISYMAS: gaunate neteisingą rezultatą, kai vykdote užklausą, kuri naudoja funkciją row_number "SQL Server" 2008

Reikia daugiau pagalbos?

Tobulinkite savo įgūdžius
Ieškoti mokymo
Pirmiausia gaukite naujų funkcijų
Prisijungti prie "Microsoft Insider"

Ar ši informacija buvo naudinga?

Dėkojame už jūsų atsiliepimus!

Dėkojame už jūsų atsiliepimą! Panašu, kad gali būti naudinga jus sujungti su vienu iš mūsų „Office“ palaikymo agentų.

×