KB4046918 - FIX: l'esecuzione non riesce quando una funzione CLR SQL richiama istruzioni Transact-SQL tramite chiamate di rappresentazione in SQL Server 2016 e 2017

Si applica a
SQL Server 2017 on Windows (all editions) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use)

Sintomi

Si consideri lo scenario seguente:

  • È disponibile una funzione CLR SQL in SQL Server 2016 e 2017.
  • La funzione CLR richiama le istruzioni Transact-SQL tramite chiamate di rappresentazione, ad esempio chiamando l'istruzione EXECUTE AS.

In questo scenario, l'esecuzione non riesce e viene visualizzato il seguente messaggio di errore:

Nota

  • Messaggio 6522, livello 16, stato 1, procedura PrcedureName, riga 0 [Inizio batch riga LineNumber]
  • Si è verificato un errore di .NET Framework durante l'esecuzione di una routine definita dall'utente o di un aggregato "ProcedureName":
  • System.Data.SqlClient.SqlException: l'entità server "LoginName" non è in grado di accedere al database "DatabaseName" nel contesto di sicurezza corrente.

Risoluzione

Questa correzione è inclusa nell'aggiornamento cumulativo 1 per SQL Server 2017.

Informazioni sul Service Pack per SQL Server 2016

Questo problema è stato risolto nel seguente Service Pack per SQL Server:

Service Pack 2 per SQL Server 2016

Informazioni sulle build di SQL Server 2017

Ogni nuova build di SQL Server 2017 contiene tutti gli hotfix e le correzioni della sicurezza presenti nella build precedente. È consigliabile installare la build più recente per SQL Server 2017.

Informazioni sui Service Pack per SQL Server:

I service pack sono cumulativi. Ogni nuovo service pack contiene tutte le correzioni presenti nei service pack precedenti, nonché le eventuali nuove correzioni. È consigliabile applicare il service pack più recente e l'aggiornamento cumulativo più recente per tale service pack. Non è necessario installare un Service Pack precedente prima di installare il Service Pack più recente. Utilizzare la tabella 1 dell'articolo seguente per trovare altre informazioni sul Service Pack più recente e sull'aggiornamento cumulativo più recente.

Come determinare la versione, l'edizione e il livello di aggiornamento di SQL Server e dei relativi componenti

Stato

Microsoft ha confermato che si tratta di un problema relativo ai prodotti elencati nella sezione "Si applica a".

Riferimenti

Informazioni sulla terminologia utilizzata da Microsoft per descrivere gli aggiornamenti software.