FIX: SQL Server potrebbe bloccarsi quando una richiesta per l'esecuzione di una stored procedure remota contiene definizione incompleta di argomenti

IMPORTANTE: il presente articolo è stato tradotto tramite un software di traduzione automatica di Microsoft ed eventualmente revisionato dalla community Microsoft tramite la tecnologia CTF (Community Translation Framework) o da un traduttore professionista. Microsoft offre articoli tradotti manualmente e altri tradotti automaticamente e rivisti dalla community con l’obiettivo di consentire all'utente di accedere a tutti gli articoli della Knowledge Base nella propria lingua. Tuttavia, un articolo tradotto automaticamente, anche se rivisto dalla community, non sempre è perfetto. Potrebbe contenere errori di vocabolario, di sintassi o di grammatica. Microsoft declina ogni responsabilità per imprecisioni, errori o danni causati da una traduzione sbagliata o dal relativo utilizzo da parte dei clienti. Microsoft aggiorna frequentemente il software e gli strumenti di traduzione automatica per continuare a migliorare la qualità della traduzione.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 3135750
Sintomi
Su un server remoto che esegue Microsoft SQL Server 2012 o SQL Server 2014, si dispone di una stored procedure che dispone di un argomento output analogo al seguente:

create procedure procExample @retVal varchar(10) outputas set @retVal = 'Goodbye';
In genere, la sintassi per richiamare la procedura remota è simile al seguente:

-- 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;
Se si omette il "? Parte OUTPUT"della sintassi di chiamata, il server locale che esegue SQL Server potrebbe bloccarsi. Il server remoto continuare a funzionare poiché l'esecuzione non raggiunge mai il per questa omissione di sintassi. Ad esempio, la sintassi è simile al seguente:

-- 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];
Variabile che non è stata inizializzata non causa l'arresto anomalo del server locale. Tuttavia, può generare un messaggio di errore che informa che non tutti gli argomenti vengono specificati per la chiamata (come dovrebbero essere). Ad esempio, avere la seguente sintassi:

-- 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];
In questo caso, viene visualizzato un messaggio di errore analogo al seguente:

Msg 201, livello 16, stato 4, procedura procExample, riga 10

Procedura o funzione 'procExample' è previsto il parametro '@retVal', che non è stato specificato.
Risoluzione

Informazioni sull'aggiornamento

Questo problema è stato corretto nell'aggiornamento cumulativo per SQL Server seguente:
Raccomandazioni: Installare l'aggiornamento cumulativo più recente per SQL Server

Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutti gli hotfix e tutte le correzioni di protezione che sono stati inclusi nell'aggiornamento cumulativo precedente. Estrarre gli ultimi aggiornamenti cumulativi per SQL Server:

Nota È possibile trovare informazioni il più recente di SQL Server le compilazioni Dove trovare informazioni il più recente di SQL Server compila.
Status
Microsoft ha confermato che questo è un problema per i prodotti Microsoft elencati nella sezione "Si applica a".
Riferimenti
Per ulteriori informazioni, vedere la terminologia utilizzata da Microsoft per descrivere gli aggiornamenti software.

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 3135750 - Ultima revisione: 05/31/2016 11:32:00 - Revisione: 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 KbMtit
Feedback