OPRAVIŤ: SQL Server môže zlyhať, ak žiadosť o vykonanie vzdialenej uložená procedúra obsahuje neúplné definície argumentov

DÔLEŽITÉ: Tento článok je preložený pomocou softvéru na strojový preklad od spoločnosti Microsoft a možno ho opraviť prostredníctvom technológie Community Translation Framework (CTF). Microsoft ponúka strojovo preložené články, články upravené komunitou aj články preložené prekladateľmi, aby zabezpečil prístup ku všetkým článkom databázy Knowledge Base vo viacerých jazykoch. Strojovo preložené články aj upravené články môžu obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky. Microsoft nenesie zodpovednosť za akékoľvek nepresnosti, chyby alebo škody spôsobené neprávnym prekladom obsahu alebo jeho použitím zo strany našich zákazníkov. Ďalšie informácie o technológii CTF nájdete na lokalite http://support.microsoft.com/gp/machine-translation-corrections/sk.

Pokiaľ chcete vidieť anglickú verziu článku, kliknite sem: 3135750
Príznaky
Na vzdialenom serveri so systémom Microsoft SQL Server 2012 alebo SQL Server 2014 máte uloženú procedúru, ktorá má argument výstup podobný nasledujúcemu:

create procedure procExample @retVal varchar(10) outputas set @retVal = 'Goodbye';
Zvyčajne syntax oznamovať vzdialené postup nasledovnému:

-- Declare a variable to hold a result, and have it initialized with a non-NULL valuedeclare @outputResult varchar(10) = 'Hello';execute ('MyDb.dbo.procExample ? OUTPUT', @outputResult OUTPUT) at [MyRemoteServer];print @outputResult;
Ak nezadáte "? VÝSTUP"súčasť syntaxe volania, lokálny server so spustenou službou SQL Server môže zlyhať. Vzdialený server naďalej pracovať, pretože vykonanie nikdy získa kvôli vynechanie tejto syntaxe. Napríklad syntax nasledovnému:

-- Declare a variable to hold a result, and have it initialized with a non-NULL valuedeclare @outputResult varchar(10) = 'Hello';execute ('MyDb.dbo.procExample', @outputResult OUTPUT) at [MyRemoteServer];
Premenná, ktorá nebola inicializovaná nespôsobuje lokálny server zlyhá. Však to generovať chybové hlásenie oznamujúce, že všetky argumenty sú uvedené pre volanie (ako by mali byť). Môžete mať napríklad nasledovnú syntax:

-- Declare a variable to hold a result, and initialize it with NULL, or leave uninitializeddeclare @outputResult varchar(10) = NULL;execute ('MyDb.dbo.procExample', @outputResult OUTPUT) at [MyRemoteServer];
V takom prípade sa zobrazí chybové hlásenie podobné nasledujúcemu:

Postup procExample, riadok 10 MSG 201, úroveň 16, štát 4

Procedúra alebo funkcia "procExample" očakáva parametra "@retVal", ktorý nebol zadaný.
Riešenie

Informácie o aktualizácii

Tento problém bol najskôr odstránený v nasledujúcej kumulatívnej aktualizácie pre server SQL Server:
Odporúčanie: Nainštalujte najnovšie kumulatívnej aktualizácie pre server SQL Server

Každý nový Kumulatívna aktualizácia pre SQL Server obsahuje všetky rýchlych a všetky opravy zabezpečenia, ktoré boli súčasťou predchádzajúcej kumulatívnej aktualizácie. Pozrite sa na najnovšie kumulatívnej aktualizácie pre server SQL Server:

Poznámka: Nájdete tu informácie o najnovších SQL Server vychádza z Kde nájdete informácie o najnovších SQL Server zostavy.
Stav
Spoločnosť Microsoft potvrdila, že ide o problém v produktoch spoločnosti Microsoft, ktoré sú uvedené v časti Vzťahuje sa na.
Odkazy
Ďalšie informácie o Terminológia ktorú spoločnosť Microsoft používa na popis aktualizácií softvéru.

Upozornenie: Tento článok bol preložený automaticky.

Vlastnosti

ID článku: 3135750 – Posledná kontrola: 05/31/2016 12:20:00 – Revízia: 3.0

Microsoft SQL Server 2012 Service Pack 2, Microsoft SQL Server 2014 Service Pack 1, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Standard

  • kbqfe kbfix kbexpertiseinter kbsurveynew kbmt KB3135750 KbMtsk
Pripomienky