Příznaky

Když je distribuovaný dotaz, který spojuje víc tabulek a je hostován vzdálenými instancemi Microsoft SQL serveru, když je zapnuténastavení relace XACT_ABORT, může se objevit některá z následujících chyb:

Msg 3989, úroveň 16, stav 1, řádek # nový požadavek nelze spustit, protože by měl být v souladu s platným popisovačem transakce.

Msg 3988, úroveň 16, stav 1, řádek # nová transakce není povolený, protože v relaci jsou spuštěné další podprocesy.

Příčina

V systému SQL Server zpracovávání distribuovaných dotazů (se systémem pro dotazování) je některá omezení návrhu, jsou-li splněny následující podmínky:

  • SQL Server spojuje více tabulek jednoho vzdáleného zdroje dat SQL serveru.

  • Relace, která dotaz vydává, není zařazena do distribuované transakce.

V této situaci může pokus o spuštění dotazu vyvolat jednu ze dvou chyb uvedených v části Příznaky.

Alternativní řešení

Pokud chcete tento problém vyřešit, uzavřete distribuovaný dotaz do příkazu "begin Distributed Transactions":  BEGIN DISTRIBUTED TRANSACTION <Distributed Query> COMMIT TRANSACTION

Potřebujete další pomoc?

Rozšiřte své znalosti a dovednosti
Projít školení
Získejte nové funkce jako první
Připojit se k programu Microsoft Insider

Byly tyto informace užitečné?

Jak jste spokojeni s kvalitou jazyka?
Co ovlivnilo váš názor?

Děkujeme vám za zpětnou vazbu.

×