KB2412203 - "Joukkolisäys toisen avoimen tulosjoukon kanssa pitäisi suorittaa XACT_ABORT käytössä" -virhesanoma saattaa tulla näyttöön, kun suoritat DTC- tai MARS-tapahtuman SQL Server 2008:ssa tai SQL Server 2008 R2:ssa.

Käytetään kohteeseen
SQL Server 2008 Developer SQL Server 2008 Enterprise 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 Standard Edition for Small Business SQL Server 2008 R2 Workgroup

Microsoft jakelee Microsoft SQL Server 2008- ja Microsoft SQL Server 2008 R2 -korjaukset yhtenä ladattavana tiedostona. Koska korjaukset ovat kumulatiivisia, jokainen uusi versio sisältää kaikki aiempiin SQL Server 2008:n tai SQL Server 2008 R2:n korjausjulkaisuihin sisältyvät hotfix-korjaukset ja tietoturvakorjaukset.

Ongelman ilmenemistapa

Mieti seuraavaa tilannetta:

  • Suoritat Microsoft SQL Server -sovelluksen, jolle on määritetty DTC (Distributed Transaction Coordinator) tai useita aktiivisia tulosjoukkoja (MARS) -tapahtuma.

    Oletetaan esimerkiksi, että suoritat Microsoft SQL Server -integrointipalvelun, joka käynnistää DTC- tai MARS-tapahtuman.

  • BULK LOAD -toiminto aloitetaan osana DTC- tai MARS-tapahtumaa kohdetaulukkoon. FIRE_TRIGGERS asetusta ei ole määritetty JOUKKOLATAUS-toiminnon BULK INSERT -lausekkeessa.

    Huomautus: JOUKKOLATAUSTOIMINTO suorittaa BULK INSERT -lauseen.

  • Aloitat toisen BULK LOAD -toiminnon tai DML (Standard Data Manipulation Language) -toiminnon toiselle kohdetaulukolle, kun ensimmäinen BULK LOAD -toiminto suoritetaan. Nämä rinnakkaiset toiminnot ovat samassa DTC- tai MARS-tapahtumassa. .

Tässä skenaariossa näyttöön saattaa tulla seuraava virhesanoma:

Huomautus

Virhe: 595, vakavuus: 16, tila: 1
Joukkolisääminen, jossa on toinen erinomainen tulosjoukko, tulee suorittaa XACT_ABORT käytössä.

Syy

Tämä ongelma ilmenee, koska SQL Server tunnistaa virheellisesti MARS-lukkiutumisen. SQL Server välttää lukkiutumiset, joita voi ilmetä, kun aloitat MARS- tai DTC-tapahtuman. SQL Server ei kuitenkaan tarkista, onko FIRE_TRIGGERS-asetus määritetty BULK INSERT -lausekkeessa.

Huomautus

  • Lisätietoja MARS-lukkiutumisen välttämisestä SQL Server:ssä on Microsoft Developer Network (MSDN) -sivuston artikkelin "Multiple Active Result Sets (MARS) in SQL Server 2005" "Interleaved Execution" -kohdassa.

    Lisätietoja Multiple Active Result Sets (MARS) in SQL Server 2005 -artikkelista on seuraavassa Microsoft Developer Network (MSDN) -sivustossa:
    Useita aktiivisia tulosjoukkoja (MARS) in SQL Server 2005 -artikkeli

Ratkaisu

Kumulatiiviset päivitystiedot

SQL Server 2008

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

2413738 Kumulatiivinen päivityspaketti 11 SQL Server 2008 Service Pack 1: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:

970365 SQL Server 2008 -koontiversiot, jotka on julkaistu SQL Server 2008 Service Pack 1:n julkaisemisen jälkeen Microsoft SQL Server 2008:n hotfix-korjaukset on tarkoitettu tietyille SQL Server Service Pack -paketeille. SQL Server 2008 Service Pack 1:n asennukseen on asennettava SQL Server 2008 Service Pack 1 -korjaus. 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ä 5. 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:

2438347 SQL Server 2008 R2:n kumulatiivinen päivityspaketti 5 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

SQL Server 2008 Service Pack 2

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

2467239 SQL Server 2008 Service Pack 2:n kumulatiivinen päivityspaketti 2Huomautus Koska koontiversiot ovat kumulatiivisia, jokainen uusi korjausversio sisältää kaikki SQL Server 2008:n aiempaan korjausversioon sisältyvät hotfix-korjaukset ja tietoturvakorjaukset. 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.

Tila

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

Viitteet

Lisätietoja BULK INSERT -lausekkeesta on seuraavassa MSDN-sivustossa:

Yleistä BULK INSERT -lausekkeesta Lisätietoja OLE DB -kohteesta on seuraavassa MSDN-sivustossa:

Yleisiä tietoja OLE DB -kohteesta Saat lisätietoja SQL Server:n lisäävästä ylläpitomallista napsauttamalla seuraavaa artikkelin numeroa, jolloin pääset lukemaan artikkelin Microsoft Knowledge Base -tietokanta -tietokannassa:

935897 SQL Server-tiimi tarjoaa lisäävän ylläpidon mallin, joka toimittaa hotfix-korjauksia ilmoitettuihin ongelmiin

Saat lisätietoja SQL Server -päivitysten nimeämisrakenteesta napsauttamalla seuraavaa artikkelin numeroa, jolloin pääset lukemaan artikkelin Microsoft Knowledge Base -tietokanta -tietokannassa:

822499 Microsoft SQL Server -ohjelmistopäivityspakettien uusi nimeämisrakenneSaat lisätietoja ohjelmistopäivitysterminologiasta napsauttamalla seuraavaa artikkelin numeroa, jolloin pääset lukemaan artikkelin Microsoft Knowledge Base -tietokanta -tietokannassa:

824684 Microsoftin ohjelmistopäivityksiä kuvaavan vakioterminologian kuvaus