Sintomi
Quando si esegue una query che inserisce l'output di sys.database_scoped_configurations in una variabile di tabella o in una tabella temporanea in Microsoft SQL Server 2016 e quindi si seleziona da tale tabella variabile o tabella temporanea come illustrato nell'esempio seguente, si potrebbe notare che esiste una sola voce per ogni database.
ELIMINARE LA TABELLA, SE ESISTE #h
CREATE TABLE #h(configuration_id INT, name sysname, value SQL_VARIANT, value_for_secondary SQL_VARIANT)
INSERISCI IN #h(configuration_id, nome, valore,value_for_secondary)
SELEZIONA * DA sys.database_scoped_configurations D'
SELEZIONARE * DA #h H
oppure
DECLARE @database\_scoped\_configurations TABLE(x INT);
INSERISCI IN @database\_scoped\_configurations
SELEZIONA configuration_id
DA sys.database_scoped_configurations;
SELEZIONA * DA @database\_scoped\_configurations
Stato
Microsoft ha confermato che si tratta di un problema relativo ai prodotti elencati nella sezione "Si applica a".
Risoluzione
Questo problema è stato risolto nel seguente aggiornamento cumulativo per SQL Server:
Informazioni sugli aggiornamenti cumulativi per SQL Server:
Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutte le correzioni rapide e di sicurezza incluse nell'aggiornamento cumulativo precedente. Vedere gli aggiornamenti cumulativi più recenti per SQL Server:
Soluzione alternativa
Per risolvere questo problema, è possibile aggiungere una clausola TOP nella parte SELECT dell'inserto per ottenere il risultato corretto. Ecco un esempio:
DICHIARA @database_scoped_configurations TABELLA(x INT);
INSERISCI IN @database_scoped_configurations
SELEZIONA TOP 100 configuration_id
DA sys.database_scoped_configurations
Riferimenti
Informazioni sulla terminologia utilizzata da Microsoft per descrivere gli aggiornamenti software.