2016-05-27 2 views
2

Я играю с функцией JSON с SQL Server. Я использую версию SQL Server для CTP 2 2016. Мой тестовый код:SQL Server 2016 CTP 2, для JSON AUTO генерирует несколько строк текста JSON

select db_name(database_id) db_name, name, physical_name 
from sys.master_files 
for json auto 

В результате я получил это:

JSON_F52E2B61-18A1-11d1-B105-00805F49916B 
----------------------------------------- 
[{"db_name":"master","name":"master","physical_name":"C:\\Program Files\\Microsoft SQL Server\\MSSQL13.MSSQLSERVER\\MSSQL\\DATA\\master.mdf"},{"db_name":"master","name":"mastlog","physical_name":"C:\\Program Files\\Microsoft SQL Server\\MSSQL13.MSSQLSERVER\\MSSQL\\DATA\\mastlog.ldf"},{"db_name":"tempdb","name":"tempdev","physical_name":"C:\\Program Files\\Microsoft SQL Server\\MSSQL13.MSSQLSERVER\\MSSQL\\DATA\\tempdb.mdf"},{"db_name":"tempdb","name":"templog","physical_name":"C:\\Program Files\\Microsoft SQL Server\\MSSQL13.MSSQLSERVER\\MSSQL\\DATA\\templog.ldf"},{"db_name":"model","name":"modeldev","physical_name":"C:\\Program Files\\Microsoft SQL Server\\MSSQL13.MSSQLSERVER\\MSSQL\\DATA\\model.mdf"},{"db_name":"model","name":"modellog","physical_name":"C:\\Program Files\\Microsoft SQL Server\\MSSQL13.MSSQLSERVER\\MSSQL\\DATA\\modellog.ldf"},{"db_name":"msdb","name":"MSDBData","physical_name":"C:\\Program Files\\Microsoft SQL Server\\MSSQL13.MSSQLSERVER\\MSSQL\\DATA\\MSDBData.mdf"},{"db_name":"msdb","name":"MSDBLog","physical_name":"C:\\Program Files\\Microsoft SQL Server\\MSSQL13.MSSQLSERVER\\MSSQL\\DATA\\MSDBLog.ldf"},{"db_name":"ReportServer","name":"ReportServer","physical_name":"C:\\Program Files\\Microsoft SQL Server\\MSSQL13.MSSQLSERVER\\MSSQL\\DATA\\ReportServer.mdf"},{"db_name":"ReportServer","name":"ReportServer_log","physical_name":"C:\\Program Files\\Microsoft SQL Server\\MSSQL13.MSSQLSERVER\\MSSQL\\DATA\\ReportServer_log.ldf"},{"db_name":"ReportServerTempDB","name":"ReportServerTempDB","physical_name":"C:\\Program Files\\Microsoft SQL Server\\MSSQL13.MSSQLSERVER\\MSSQL\\DATA\\ReportServerTempDB.mdf"},{"db_name":"ReportServerTempDB","name":"ReportServerTempDB_log","physical_name":"C:\\Program Files\\Microsoft SQL Server\\MSSQL13.MSSQLSERVER\\MSSQL\\DATA\\ReportServerTempDB_log.ldf"},{"db_name":"RServices","name":"RServices","physical_name":"C:\\Program Files\\Microsoft SQL Server\\MSSQL13.MSSQLSERVER\\MSSQL\\DATA\\RServices.mdf"},{"db_name":"RServices","name":"RServices_log","physical_ 
name":"C:\\Program Files\\Microsoft SQL Server\\MSSQL13.MSSQLSERVER\\MSSQL\\DATA\\RServices_log.ldf"}] 

Обратите внимание, что под заголовком текст JSON был разделен на две линии. Почему это? Если я могу получить результат из двух строк, я понимаю, что возможны три или более строк. Как получить согласованный результат?

+0

Просто любопытно. Если вы измените результаты на текст (Cntrl-T), ваша JSON все еще обертывается? –

+0

@JohnCappelletti, да, все еще завернутый в текст результат. –

ответ

0

Необходимо использовать новейшую RTM-версию SQL Server или, по крайней мере, некоторую версию CTP3. Форматирование JSON в SSMS изменено в январском выпуске (3.3), и теперь он возвращает весь текст JSON как одну непрерывную линию в новом окне (аналогично FOR XML). В Visual Studio/SSDT вы можете легко форматировать вывод JSON.