FIX: Messaggio di errore quando si esegue una query su una vista in SQL Server 2005: "Errore durante l'esecuzione batch"

Bug #: 50002350 (Hotfix SQL)
Microsoft distribuisce le correzioni Microsoft SQL Server 2005 come un unico file scaricabile. Poiché le correzioni sono cumulative, ogni nuova versione contiene tutte le correzioni rapide e rilascio delle correzioni per tutte le correzioni fornite con la versione precedente di SQL Server 2005.

Sintomi

Si consideri il seguente scenario. In Microsoft SQL Server 2005, si crea una vista che possiede l'attributo view_metadata abilitato. Quindi, si esegue una query sulla vista. In questo scenario può accadere che venga visualizzato il seguente messaggio di errore:
Si è verificato un errore durante l'esecuzione batch. Messaggio di errore: errore irreversibile della connessione interna.
Questo problema può verificarsi se una delle seguenti condizioni è vera:
  • Viene impostato l'opzione NO_BROWSETABLE ON.
  • Specificare la clausola FOR BROWSE per la query.

Risoluzione

La correzione di questo problema è stata rilasciata prima 6 aggiornamento cumulativo. Per ulteriori informazioni su come ottenere il pacchetto di aggiornamento cumulativo per SQL Server 2005 Service Pack 2, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
946608 cumulativo aggiornamento 6 per SQL Server 2005 Service Pack 2
Nota: Poiché le versioni sono cumulative, ogni nuova versione contiene tutte le correzioni rapide e rilascio delle correzioni per tutte le correzioni fornite con la versione precedente di SQL Server 2005. Microsoft consiglia di considerare l'applicazione alla versione più recente di correzione contenente tale hotfix. Per ulteriori informazioni, fare clic sul seguente numero di articolo per visualizzare l'articolo della Microsoft Knowledge Base:
937137 versioni di SQL Server 2005 rilasciate dopo il rilascio di SQL Server 2005 Service Pack 2
Aggiornamenti rapidi di Microsoft SQL Server 2005 vengono creati per service pack specifici di SQL Server. Un'installazione di SQL Server 2005 Service Pack 2, è necessario applicare un hotfix di SQL Server 2005 Service Pack 2. Per impostazione predefinita, qualsiasi hotfix fornito in un service pack di SQL Server è incluso nel prossimo service pack di SQL Server.

Soluzione alternativa

Per risolvere questo problema, utilizzare uno dei seguenti metodi:
  • Non utilizzare l'attributo view_metadata per la visualizzazione.
  • Utilizzare i cursori statici lato client per eseguire la query nell'applicazione.
  • La prima riga della stored procedure, impostare l'opzione NO_BROWSETABLE su OFF.

Stato

Microsoft ha confermato che questo è un problema dei prodotti Microsoft elencati nella sezione "Si applica a".

Ulteriori informazioni

Dopo aver installato il pacchetto di aggiornamento cumulativo 6, è necessario attivare anche il flag di traccia 210 per la correzione da implementare. Si consiglia di aggiungere il flag di traccia come parametro di avvio. Tuttavia, è possibile anche attivare il flag di traccia in modo dinamico tramite l'esecuzione di un comando analogo al seguente:
DBCC TRACEON(210,-1) Go DBCC FREEPROCCACHE Go
Inoltre, è necessario liberare la cache in modo che i piani memorizzati nella cache che ha modificato il problema verranno ricompilati, ricaricare utilizzando l'opzione imposta flag di traccia.

Per ulteriori informazioni su quali file vengono modificati e per informazioni sui prerequisiti per applicare il pacchetto di aggiornamento cumulativo che include l'aggiornamento rapido descritto nell'articolo della Microsoft Knowledge Base, fare clic sul numero riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base:
946608 cumulativo aggiornamento 6 per SQL Server 2005 Service Pack 2

Procedura per riprodurre il problema

  1. Avviare SQL Server Management Studio e quindi creare una nuova query.
  2. Eseguire le seguenti istruzioni Transact-SQL.
    CREATE DATABASE db1GO

    USE db1
    GO

    CREATE TABLE t1 (b INT PRIMARY KEY, B INT)
    CREATE TABLE t2 (b INT PRIMARY KEY)
    GO

    INSERT INTO t1 VALUES (1,NULL)
    INSERT INTO t1 VALUES (2,NULL)
    GO

    CREATE VIEW v2
    WITH VIEW_METADATA
    AS
    SELECT * FROM t2
    GO

    SET NO_BROWSETABLE ON
    SELECT t1.b
    FROM t1 LEFT JOIN v2 ON t1.b = v2.b
    GO

Riferimenti

Per ulteriori informazioni sull'elenco delle generazioni disponibili dopo SQL Server Service Pack 2, fare clic sul numero riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base riportato di seguito:
937137 versioni di SQL Server 2005 rilasciate dopo il rilascio di SQL Server 2005 Service Pack 2
Per ulteriori informazioni sul modello di manutenzione incrementale per SQL Server, fare clic sul numero riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base riportato di seguito:
935897 un modello di manutenzione incrementale è disponibile dal team di SQL Server per offrire gli hotfix per i problemi segnalati
Per ulteriori informazioni su come ottenere SQL Server 2005 Service Pack 2, fare clic sul numero riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base riportato di seguito:
913089 come ottenere il service pack più recente per SQL Server 2005
Per ulteriori informazioni sulle nuove funzionalità e i miglioramenti di SQL Server 2005 Service Pack 2, visitare il seguente sito Web Microsoft:Per ulteriori informazioni sullo schema di denominazione per gli aggiornamenti di SQL Server, fare clic sul numero riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base riportato di seguito:
I pacchetti di aggiornamento 822499 nuovo schema di denominazione per il software di Microsoft SQL Server
Per ulteriori informazioni sulla terminologia degli aggiornamenti software, fare clic sul seguente numero di articolo per visualizzare l'articolo della Microsoft Knowledge Base:
824684 descrizione della terminologia standard utilizzata per descrivere gli aggiornamenti software Microsoft
Proprietà

ID articolo: 945892 - Ultima revisione: 31 gen 2017 - Revisione: 1

Feedback