KB2519358 – KORJAUS: "Kokonaisluvun arvo on alueen ulkopuolella" -virhe, kun SQL Server 2008:ssa tai SQL Server 2008 R2:ssa välitetään bigint-arvo MUUTATAULUKKO-funktion last_sync_version-argumentiksi

Käytetään kohteeseen
SQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 Express SQL Server 2008 Service Pack 2 SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Express

Microsoft jakelee Microsoft SQL Server 2008 Service Pack 1 (SP1)- ja Microsoft SQL Server 2008 R2 -korjaukset yhtenä ladattavana tiedostona. Koska korjaukset ovat kumulatiivisia, jokainen uusi versio sisältää kaikki hotfix-korjaukset ja tietoturvakorjaukset, jotka sisältyivät aiempiin SQL Server 2008 SP1- ja SOL Server 2008 R2 -korjausjulkaisuihin.

Ongelman ilmenemistapa

Mieti seuraavaa tilannetta:

  • Voit ottaa muutosten jäljityksen käyttöön taulukossa SQL Server 2008:ssa tai SQL Server 2008 R2:ssa.

  • Suoritat kyselyn, joka käyttää MUUTATAULUKKO-funktiota yhdessä last_sync_version-argumentin kanssa taulukossa tapahtuneiden muutosten seurantatietojen palauttamiseen.

  • Bigint-arvo välitetään last_sync_version argumentiksi.

Suoritat esimerkiksi seuraavan kyselyn, kun olet ottanut muutosten jäljityksen käyttöön taulukossa:

SELECT * FROM CHANGETABLE(changes dbo.t1, 2222222222) as ct

Tässä skenaariossa kyselyn suorittaminen epäonnistuu ja näyttöön tulevat seuraavat tiedot:

Huomautus

Msg 1080, taso 15, tila 1, rivi 1
Kokonaislukuarvo, jonka suurin kokonaislukuarvo on alueen ulkopuolella.

Muistiinpanot

  • last_sync_version-argumentin tyypiksi määritetään isokokonaisluku. Tämän vuoksi kyselyn odotetaan toimivan onnistuneesti.
  • BigInt-arvo on paikkamerkki, joka edustaa last_sync_version-argumenttina välitettävää BigInt-arvoa.

Ratkaisu

Kumulatiiviset päivitystiedot

SQL Server 2008 R2 Service Pack 1

Tämän ongelman korjaus julkaistiin ensimmäisenä SQL Server 2008 R2 Service Pack 1:n kumulatiivisessa päivityksessä 1. Saat lisätietoja tämän kumulatiivisen päivityspaketin hankkimisesta napsauttamalla seuraavaa artikkelin numeroa, jolloin pääset lukemaan artikkelin Microsoft Knowledge Base -tietokanta -tietokannassa:

2544793 SQL Server 2008 R2 Service Pack 1:n kumulatiivinen päivityspaketti 1Huomautus Koska koontiversiot ovat kumulatiivisia, jokainen uusi korjausversio sisältää kaikki SQL Server 2008 R2:n aiempaan korjausversioon sisältyvät hotfix-korjaukset ja tietoturvakorjaukset. Suosittelemme, että otat käyttöön uusimman korjausversion, joka sisältää tämän hotfix-korjauksen. Lisätietoja saat napsauttamalla seuraavaa Microsoft Knowledge Base -tietokanta -artikkelinumeroa:

2567616 SQL Server 2008 R2 -koontiversiot, jotka on julkaistu SQL Server 2008 R2 Service Pack 1:n jälkeen

SQL Server 2008 Service Pack 2

Tämän ongelman korjaus julkaistiin ensimmäisenä SQL Server 2008 Service Pack 2:n kumulatiivisessa päivityksessä 4. Saat lisätietoja tästä kumulatiivisesta päivityspaketista napsauttamalla seuraavaa artikkelin numeroa, jolloin pääset lukemaan artikkelin Microsoft Knowledge Base -tietokanta -tietokannassa:

2527180 Kumulatiivinen päivityspaketti 4 SQL Server 2008 Service Pack 2:lleHuomautus Koska koontiversiot ovat kumulatiivisia, jokainen uusi korjausversio sisältää kaikki hotfix-korjaukset ja tietoturvakorjaukset, jotka sisältyivät edelliseen SQL Server 2008:n korjausversioon. Microsoft suosittelee, että otat käyttöön uusimman kyseisen hotfix-korjauksen sisältävän korjausversion. Lisätietoja saat napsauttamalla seuraavaa Microsoft Knowledge Base -tietokanta -artikkelinumeroa:

2402659 SQL Server 2008 -koontiversiot, jotka on julkaistu SQL Server 2008 Service Pack 2:n julkaisemisen jälkeen Microsoft SQL Server 2008:n hotfix-korjaukset on tarkoitettu tietyille SQL Server Service Pack -paketeille. SQL Server 2008 Service Pack 2:n asennuksessa on käytettävä SQL Server 2008 Service Pack 2:n hotfix-korjausta. Oletusarvoisesti kaikki SQL Server Service Pack -pakettiin sisältyvät hotfix-korjaukset seuraavaan SQL Server Service Packiin.

SQL Server 2008 R2

Tämän ongelman korjaus julkaistiin ensin kumulatiivisessa päivityksessä 7. Saat lisätietoja tämän SQL Server 2008 R2:n kumulatiivisen päivityspaketin hankkimisesta napsauttamalla seuraavaa artikkelin numeroa, jolloin pääset lukemaan artikkelin Microsoft Knowledge Base -tietokanta -tietokannassa:

2507770 SQL Server 2008 R2:n kumulatiivinen päivityspaketti 7 Huomautus Koska koontiversiot ovat kumulatiivisia, jokainen uusi korjausversio sisältää kaikki edelliseen SQL Server 2008 R2:n korjausversioon sisältyvät hotfix-korjaukset ja tietoturvakorjaukset. Suosittelemme, että otat käyttöön uusimman korjausversion, joka sisältää tämän hotfix-korjauksen. Lisätietoja saat napsauttamalla seuraavaa Microsoft Knowledge Base -tietokanta -artikkelinumeroa:

981356 SQL Server 2008 R2 -koontiversiot, jotka julkaistiin SQL Server 2008 R2:n jälkeen
Tämän ongelman korjaus julkaistiin ensin kumulatiivisessa päivityksessä 13. Saat lisätietoja tämän SQL Server 2008 SP1:n kumulatiivisen päivityspaketin hankkimisesta napsauttamalla seuraavaa artikkelin numeroa, jolloin pääset lukemaan artikkelin Microsoft Knowledge Base -tietokanta -tietokannassa:

2497673 Kumulatiivinen päivityspaketti 13 SQL Server 2008 Service Pack 1:lle
Huomautus: Koska koontiversiot ovat kumulatiivisia, jokainen uusi korjausversio sisältää kaikki hotfix-korjaukset ja tietoturvakorjaukset, jotka sisältyivät aiempaan SQL Server 2008 SP1:n korjausversioon. Suosittelemme, että otat käyttöön uusimman korjausversion, joka sisältää tämän hotfix-korjauksen. Lisätietoja saat napsauttamalla seuraavaa Microsoft Knowledge Base -tietokanta -artikkelinumeroa:

970365 SQL Server 2008 -koontiversiot, jotka on julkaistu SQL Server 2008 Service Pack 1:n julkaisemisen jälkeen

Tila

Microsoft on vahvistanut tämän olevan ongelma niissä Microsoftin tuotteissa, jotka ovat listattuna Koskee seuraavia tuotteita -osiossa.

Vaihtoehtoinen menetelmä

Voit kiertää ongelman luomalla muuttujan tyyppisellä bigint-muuttujalla ja antamalla sitten muuttuja MUUTATAULUKKO-funktion last_sync_version argumentiksi. Voit suorittaa menestyksekkäästi esimerkiksi seuraavan kyselyn:

DECLARE @v3 bigint = 2222222222
SELECT * FROM CHANGETABLE(changes dbo.t1, @v3 ) as ct

Lisätietoja

Lisätietoja Transact-SQL:n MUUTATAULUKKO-funktiosta on seuraavassa Microsoft Development Network (MSDN) -sivustossa:

Yleistä tietoa Transact-SQL:n MUUTATAULUKKO-funktiosta