Sintomas
Quando você executa uma consulta que insere a saída de sys.database_scoped_configurations para uma variável de tabela ou uma tabela temporária no Microsoft SQL Server 2016 e, em seguida, selecione uma variável de tabela ou temporária tabela conforme mostrado no exemplo abaixo, você pode observar que há apenas uma entrada para cada banco de dados.
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
ou
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
A Microsoft confirmou que este é um problema nos produtos Microsoft listados na seção "Aplicável a".
Resolução
Esse problema foi corrigido na seguinte atualização cumulativa do SQL Server:
Sobre atualizações cumulativas do SQL Server:
Cada nova atualização cumulativa do SQL Server contém todos os hotfixes e todas as correções de segurança incluídas na atualização cumulativa anterior. Confira as atualizações cumulativas mais recentes do SQL Server:
Solução alternativa
Para solucionar esse problema, você pode adicionar uma cláusula TOP na parte selecionada da sua inserção para obter o resultado correto. Aqui está um exemplo:
DECLARE @database_scoped_configurations TABLE(x INT);
INSERT INTO @database_scoped_configurations
SELECT TOP 100 configuration_id
FROM sys.database_scoped_configurations
Referências
Saiba mais sobre a terminologia que a Microsoft usa para descrever atualizações de software.