Симптоми
Когато изпълните заявка, която вмъква изхода на sys.database_scoped_configurations към таблица с променлива или временна таблица в Microsoft SQL Server 2016 и след това изберете от тази променлива на таблицата или временна таблица, както е видно в примера по-долу, може да забележите, че има само един запис за всяка база данни.
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
или
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
Състоянието
Microsoft потвърди, че това е проблем в продуктите на Microsoft, които са посочени в секцията "важи за".
Решение
Този проблем е коригиран в следната сборна актуализация за SQL Server:
За сборните актуализации за SQL Server:
Всяка нова сборна актуализация за SQL Server съдържа всички поправки и всички корекции на защитата, които са били включени в предишната сборна актуализация. Вижте последните сборни актуализации за SQL Server:
Заобиколно решение
За да заобиколите този проблем, можете да добавите най-горната клауза в частта изберете част от своя вмъкнат, за да получите правилния резултат. Ето един пример:
DECLARE @database_scoped_configurations TABLE(x INT);
INSERT INTO @database_scoped_configurations
SELECT TOP 100 configuration_id
FROM sys.database_scoped_configurations
Препратки
Научете повече за терминологията , която Microsoft използва, за да опише софтуерни актуализации.