Sintomas
Quando executa uma consulta que insere os resultados do sys.database_scoped_configurations numa tabela, variável ou tabela temporária no Microsoft SQL Server 2016 e, em seguida, seleciona a partir dessa tabela, variável ou tabela temporária, como mostrado no exemplo abaixo, poderá reparar que existe apenas uma entrada para cada base de dados.
TABELA SUSPENSA, SE EXISTIR #h
CREATE TABLE #h(configuration_id INT, nome, nome, valor, SQL_VARIANT, value_for_secondary SQL_VARIANT)
INSERT INTO #h(configuration_id, nome, valor, value_for_secondary)
SELECIONE * DE sys.database_scoped_configurations D'
SELECIONE * DE #h H
ou
DECLARAR @database\_scoped\_configurations TABELA(x INT);
INSERIR EM @database\_scoped\_configurations
SELECIONE configuration_id
DE sys.database_scoped_configurations;
SELECIONE * DE @database\_scoped\_configurations
Estado
A Microsoft confirmou que se trata de um problema nos produtos Microsoft listados na secção "Aplica-se a".
Resolução
Este problema foi corrigido na seguinte atualização cumulativa para SQL Server:
Acerca das atualizações cumulativas para SQL Server:
Cada nova atualização cumulativa para SQL Server contém todos os hotfixes e todas as correções de segurança que foram incluídas com a atualização cumulativa anterior. Consulte as atualizações cumulativas mais recentes para SQL Server:
Solução
Para contornar este problema, pode adicionar uma cláusula TOP na parte SELECT da sua inserção para obter o resultado correto. Eis um exemplo:
DECLARAR @database_scoped_configurations TABELA(x INT);
INSERIR NO @database_scoped_configurations
SELECIONAR TOP 100 configuration_id
DE sys.database_scoped_configurations
Referências
Saiba mais sobre a terminologia que a Microsoft utiliza para descrever as atualizações de software.