NUSTATYTI: SQL Server gali sugesti, kai užklausą dėl apdorojimo nuotolinio procedūra yra nebaigtas argumentų apibūdinimas

SVARBU: šis straipsnis išverstas naudojant „Microsoft“ mašininio vertimo programinę įrangą ir gali būti pataisytas naudojant „Community Translation Framework“ (CTF) technologiją. „Microsoft“ siūlo mašinos išverstus ir po to bendruomenės suredaguotus straipsnius, taip pat žmogaus išverstus straipsnius siekdama suteikti prieigą prie visų savo žinių bazės straipsnių daugeliu kalbų. Mašinos išverstuose ir vėliau paredaguotuose straipsniuose gali būti žodyno, sintaksės ir / arba gramatikos klaidų. „Microsoft“ neatsako už jokius netikslumus, klaidas arba žalą, patirtą dėl neteisingo turinio vertimo arba mūsų klientų naudojimosi juo. Daugiau apie CTF žr. http://support.microsoft.com/gp/machine-translation-corrections.

Spustelėkite čia, norėdami pamatyti šio straipsnio versiją anglų kalba: 3135750
Požymiai
Nuotolinio serverio, kuriame veikia Microsoft SQL Server 2012 arba SQL serverio 2014, jūs turite saugomos procedūros yra išvesties argumentas, kuris panašus į šį:

create procedure procExample @retVal varchar(10) outputas set @retVal = 'Goodbye';
Paprastai sintaksė pasinaudoti tokių nuotolinių procedūrų, panašų į šį:

-- 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;
Jei praleisite, "? IŠVESTIES"dalis skambučių sintaksė, vietiniame serveryje, kuriame veikia SQL serveris gali sugesti. Nuotolinio serverio toliau veikti, nes vykdymo niekada pasiekia dėl šią sintaksę neveikimo. Pvz., sintaksė, panašų į šį:

-- 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];
Kintamasis, inicijuota nesukelia vietiniame serveryje gali užstrigti. Tačiau jis generuoti klaidos pranešimas, kuriame nurodoma, kad ne visi argumentai yra nurodyti iškvietimo (nes jie turėtų būti). Pavyzdžiui, jūs turite tokią sintaksę:

-- 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];
Tokiu atveju galite gauti klaidos pranešimą, panašų į šį:

MSG 201, lygis 16, būsenos 4, procedūra procExample, 10 eilutė

Procedūra ar funkcija "procExample" tikisi parametras @retVal, kuris buvo nepridedamas.
Sprendimas

Informacija apie atnaujinimą

Ši problema pirmą kartą buvo išspręsta šį kaupiamąjį naujinimą SQL Server:
Rekomendacija: Įdiegti naujausią kaupiamąjį naujinimą SQL Server

SQL serverio kiekvieną naują Kaupiamasis naujinimas yra visos karštosios ir naujausios saugos pataisos, kurios buvo įtrauktos į ankstesnio kaupiamojo naujinimo. Patikrinkite SQL Server kaupiamieji naujinimai:

Pastaba. Galite rasti informacijos apie naujausią SQL serverio remiamasi Kur rasti informaciją apie naujausią SQL serverio komponavimo versijos.
Būsena
„Microsoft“ patvirtino, kad tai yra „Microsoft“ produktų, išvardytų skyriuje „Taikoma“, problema.
Nuorodos
Susipažinkite su terminologiją kurią „Microsoft“ naudoja programinės įrangos naujinimams apibūdinti.

Įspėjimas: šis straipsnis išverstas automatiškai

Rekvizīti

Raksta ID: 3135750. Pēdējo reizi pārskatīts: 05/31/2016 11:56:00. Pārskatījums: 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 KbMtlt
Atsauksmes