KB2536225-FIX: la stored procedure CLR restituisce NULL dopo la ricompilazione in SQL Server 2008 R2 o in SQL Server 2008

Microsoft distribuisce Microsoft SQL Server 2008 R2 o Microsoft SQL Server 2008 correzioni come un file scaricabile. Poiché le correzioni sono cumulative, ogni nuova versione contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nella versione precedente di SQL Server 2008 R2 o SQL Server 2008 FIX.

Sintomi

Considerare lo scenario descritto di seguito:

  • Si crea una stored procedure CLR (Common Language Runtime) per un database di Microsoft SQL Server 2008 R2 o Microsoft SQL Server 2008.

  • La stored procedure CLR viene implementata come metodo statico pubblico che restituisce un valore integer in Microsoft .NET Framework.

  • Si esegue un'applicazione che chiama la stored procedure CLR. La stored procedure CLR restituisce un valore corretto.

  • Si eseguono alcune operazioni che ricompilano il piano di esecuzione per la stored procedure CLR.Nota Per altre informazioni su come ricompilare il piano di esecuzione per la stored procedure, vedere la sezione "altre informazioni".

  • Eseguire di nuovo l'applicazione.

In questo scenario, la stored procedure CLR restituisce erroneamente un valore NULL. È inoltre necessario riavviare il servizio SQL Server per risolvere il problema.

Risoluzione

Informazioni sull'aggiornamento cumulativo

SQL Server 2008 Service Pack 3

La correzione di questo problema è stata rilasciata per la prima volta in aggiornamento cumulativo 2 per SQL Server 2008 Service Pack 3. Per altre informazioni su questo pacchetto di aggiornamento cumulativo, fare clic sul numero dell'articolo della Microsoft Knowledge Base seguente per visualizzare l'articolo:

2633143 Pacchetto di aggiornamento cumulativo 2 per SQL Server 2008 Service Pack 3Nota Poiché le build sono cumulative, ogni nuova versione di correzione contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nella versione precedente di SQL Server 2008 FIX. Microsoft consiglia di applicare l'ultima versione di correzione che contiene questo hotfix. Per ulteriori informazioni, fare clic sul numero dell'articolo seguente per visualizzare l'articolo nella Microsoft Knowledge Base:

2629969 Build di SQL Server 2008 rilasciate dopo il rilascio di SQL Server 2008 Service Pack 3 Microsoft SQL Server 2008 hotfix vengono creati per specifici Service Pack di SQL Server. È necessario applicare un hotfix di SQL Server 2008 Service Pack 3 a un'installazione di SQL Server 2008 Service Pack 3. Per impostazione predefinita, qualsiasi hotfix fornito in un Service Pack di SQL Server è incluso nel prossimo Service Pack di SQL Server.

SQL Server 2008 R2 Service Pack 1

La correzione di questo problema è stata rilasciata per la prima volta in aggiornamento cumulativo 2 per SQL Server 2008 R2 Service Pack 1. Per altre informazioni su come ottenere questo pacchetto di aggiornamento cumulativo, fare clic sul numero dell'articolo della Microsoft Knowledge Base seguente per visualizzare l'articolo:

2567714 Pacchetto di aggiornamento cumulativo 2 per SQL Server 2008 R2 Service Pack 1Nota Poiché le build sono cumulative, ogni nuova versione di correzione contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nella versione precedente di SQL Server 2008 R2 Fix. Ti consigliamo di considerare l'applicazione della versione di correzione più recente che contiene questo hotfix. Per ulteriori informazioni, fare clic sul numero dell'articolo seguente per visualizzare l'articolo nella Microsoft Knowledge Base:

2567616 Le build di SQL Server 2008 R2 rilasciate dopo il rilascio di SQL Server 2008 R2 Service Pack 1

SQL Server 2008 R2

La correzione di questo problema è stata rilasciata per la prima volta in aggiornamento cumulativo 8. Per altre informazioni su come ottenere questo pacchetto di aggiornamento cumulativo per SQL Server 2008 R2, fare clic sul numero dell'articolo seguente per visualizzare l'articolo della Microsoft Knowledge Base:

2534352 Pacchetto di aggiornamento cumulativo 8 per SQL Server 2008 R2 Nota Poiché le build sono cumulative, ogni nuova versione di correzione contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nella versione precedente di SQL Server 2008 R2 Fix. Ti consigliamo di considerare l'applicazione della versione di correzione più recente che contiene questo hotfix. Per ulteriori informazioni, fare clic sul numero dell'articolo seguente per visualizzare l'articolo nella Microsoft Knowledge Base:

981356 Build di SQL Server 2008 R2 rilasciate dopo il rilascio di SQL Server 2008 R2

Ulteriori informazioni

Per ricompilare il piano di esecuzione per la stored procedure, eseguire una delle operazioni seguenti:

  • Eseguire l'istruzione DBCCFREEPROCCACHE .

  • Eseguire una delle istruzioni seguenti in una tabella o una visualizzazione:

    • ALTER TABLE

    • ALTER VIEW

  • Eseguire un piano di esecuzione che consente di modificare o eliminare gli indici.

  • Eseguire un'operazione di aggiornamento sulle statistiche usate dal piano di esecuzione. Nota Puoi eseguire un'istruzione per eseguire l'operazione di aggiornamento oppure l'operazione di aggiornamento può essere eseguita automaticamente.

  • Eseguire l'istruzione sp_recompile .

  • Apportare molte modifiche alle chiavi. Ad esempio, usa un account utente che aggiorna una tabella a cui fa riferimento un'istruzione per eseguire l'istruzione Insert o Delete .

  • Inserire o eliminare molte righe da una tabella che contiene trigger.

  • Usare l'opzione with REcompile per eseguire una stored procedure.

Stato

Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".

Riferimenti

Per altre informazioni sulle stored procedure CLR, visitare il sito Web MSDN seguente:

Informazioni generali sulle stored procedure CLRPer altre informazioni sul modello di manutenzione incrementale per SQL Server, fare clic sul numero dell'articolo della Microsoft Knowledge Base seguente per visualizzare l'articolo:

935897 Un modello di manutenzione incrementale è disponibile nel team di SQL Server per fornire gli hotfix per i problemi segnalatiPer altre informazioni sullo schema di denominazione per gli aggiornamenti di SQL Server, fare clic sul numero dell'articolo della Microsoft Knowledge Base seguente per visualizzare l'articolo:

822499Nuovo schema di denominazione per i pacchetti di aggiornamento software di Microsoft SQL ServerPer altre informazioni sulla terminologia degli aggiornamenti software, fare clic sul numero dell'articolo della Microsoft Knowledge Base seguente per visualizzare l'articolo:

824684 Descrizione della terminologia standard utilizzata per descrivere gli aggiornamenti software Microsoft

Serve aiuto?

Amplia le tue competenze
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa a Microsoft Insider

Queste informazioni sono risultate utili?

Grazie per il feedback!

Grazie per il tuo feedback! Potrebbe essere utile metterti in contatto con uno dei nostri operatori del supporto di Office.

×