2016-05-27 9 views
2

Ich spiele mit der JSON-Funktion mit SQL Server. Ich verwende eine 2016 CTP 2-Version von SQL Server. Mein Testcode ist:SQL Server 2016 CTP 2, FOR JSON AUTO generiert mehrere Zeilen von JSON-Text

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

Das Ergebnis was ich habe ist:

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"}] 

Beachten Sie, dass unter dem Header der JSON Text in zwei Zeilen aufgeteilt wurde. Warum das? Wenn ich ein zwei Zeilen Ergebnis habe, sind drei oder mehr Zeilen auch möglich, wie ich es verstehe. Wie erhält man ein konsistentes Ergebnis?

+0

Nur neugierig. Wenn Sie die Ergebnisse in Text (Cntrl-T) ändern, wird Ihr JSON noch verpackt? –

+0

@JohnCappelletti, ja, immer noch in Text-Wrapping. –

Antwort

0

Sie sollten den neuesten SQL Server RTM oder zumindest eine CTP3-Version verwenden. Die JSON-Formatierung in SSMS wurde in der Januar-Version (3.3) geändert und gibt jetzt den gesamten JSON-Text als eine durchgehende Zeile in einem neuen Fenster zurück (ähnlich FOR XML). In Visual Studio/SSDT können Sie JSON-Ausgabe schön formatieren.