Symptom
När du kör en fråga som infogar resultatet från sys.database_scoped_configurations till en tabell variabel eller tillfällig tabell i Microsoft SQL Server 2016 och välj sedan från den tabell variabeln eller tillfälliga tabell som du ser i exemplet nedan kan du märka att det bara finns en post för varje databas.
DROP TABLE IF EXISTS #h
CREATE TABLE #h(configuration_id INT, name sysname, value SQL_VARIANT, value_for_secondary SQL_VARIANT)
INSERT INTO #h(configuration_id, name, value,value_for_secondary)
SELECT * FROM sys.database_scoped_configurations D'
SELECT * FROM #h H
eller
DECLARE @database_scoped_configurations TABLE(x INT);
INSERT INTO @database_scoped_configurations
SELECT configuration_id
FROM sys.database_scoped_configurations;
SELECT * FROM @database_scoped_configurations
Status
Microsoft har bekräftat att det här är ett problem i Microsoft-produkterna som nämns i "gäller".
Lösning
Det här problemet är åtgärdat i den här kumulativa uppdateringen för SQL Server:
Om kumulativa uppdateringar för SQL Server:
Varje ny kumulativ uppdatering för SQL Server innehåller alla snabb korrigeringar och alla säkerhets korrigeringar som ingick i den föregående kumulativa uppdateringen. Kolla in de senaste kumulativa uppdateringarna för SQL Server:
Lösning
Du kan undvika det här problemet genom att lägga till en TOP-sats i SELECT-delen av INSERT för att få rätt resultat. Här är ett exempel:
DECLARE @database_scoped_configurations TABLE(x INT);
INSERT INTO @database_scoped_configurations
SELECT TOP 100 configuration_id
FROM sys.database_scoped_configurations
Referenser
Lär dig mer om terminologin som Microsoft använder för att beskriva program varu uppdateringar.