JSON-Daten in SQL Server
Gilt für: SQL Server 2016 (13.x) und höhere Versionen Azure SQL-Datenbank Azure SQL verwaltete Instanz Azure Synapse Analytics SQL-Datenbank in Microsoft Fabric
JSON ist ein beliebtes Textdatenformat, das zum Austauschen von Daten in modernen Webanwendungen und mobilen Anwendungen verwendet wird. JSON wird auch zum Speichern von unstrukturierten Daten in Protokolldateien oder NoSQL-Datenbanken wie Microsoft Azure Cosmos DB verwendet. Viele REST-Webdienste geben Ergebnisse zurück, die als JSON-Text formatiert sind, oder akzeptieren Daten, die im JSON-Format formatiert sind. Beispielsweise verfügen die meisten Azure-Dienste wie Azure Search, Azure Storage und Azure Cosmos DB über REST-Endpunkte, die JSON zurückgeben oder verarbeiten. JSON ist auch das hauptsächliche Format zum Austauschen von Daten zwischen Webseiten und Webservern über AJAX-Aufrufe.
JSON-Funktionen, die erstmals in SQL Server 2016 (13.x) eingeführt wurden, ermöglichen es Ihnen, NoSQL und relationale Konzepte in der gleichen Datenbank zu kombinieren. Sie können übliche relationale Spalten mit anderen Spalten kombinieren, die Dokumente enthalten, die als JSON-Text in der gleichen Tabelle formatiert sind, JSON-Dokumente analysieren und in relationale Strukturen importieren oder relationale Daten zu JSON-Text formatieren.
Hinweis
Für die JSON-Unterstützung ist die Datenbankkompatibilitätsebene 130 oder höher erforderlich.
Hier ist ein Beispiel des JSON-Texts:
[
{
"name": "John",
"skills": [ "SQL", "C#", "Azure" ]
},
{
"name": "Jane",
"surname": "Doe"
}
]
Durch Verwenden von integrierten SQL Server-Funktionen und -Operatoren können Sie die folgenden Aktionen mit JSON-Text ausführen:
- Analysieren Sie JSON-Text und lesen oder ändern Sie Werte.
- Wandeln Sie Arrays von JSON-Objekten in das Tabellenformat um.
- Wenden Sie eine beliebige Transact-SQL-Abfrage auf die konvertierte JSON-Objekte an.
- Formatieren Sie die Ergebnisse der Transact-SQL-Abfragen in das JSON-Format.
Wichtige JSON-Funktionen von SQL Server und SQL-Datenbank
In den nächsten Abschnitten werden die wichtigsten Funktionen erläutert, die SQL Server durch die integrierte Unterstützung für JSON bereitstellt.
JSON-Datentyp
Der neue json-Datentyp, der JSON-Dokumente in einem nativen Binärformat speichert, das die folgenden Vorteile beim Speichern von JSON-Daten in varchar/nvarchar bietet:
- Effizientere Lesevorgänge, da das Dokument bereits analysiert wurde
- Effizientere Schreibvorgänge, da die Abfrage einzelne Werte aktualisieren kann, ohne auf das gesamte Dokument zuzugreifen
- Effizientere Speicherung, optimiert für die Komprimierung
- Keine Änderung der Kompatibilität mit vorhandenem Code
Hinweis
Der JSON-Datentyp befindet sich derzeit in der Vorschau für Azure SQL-Datenbank und Azure SQL verwaltete Instanz (konfiguriert mit der Always-up-to-date-Updaterichtlinie).
Die in diesem Artikel beschriebenen JSON-Funktionen sind nach wie vor die effizienteste Methode zum Abfragen des json-Datentyps. Weitere Informationen zum nativen json-Datentyp finden Sie unter JSON-Datentyp.
Extrahieren von Werten aus JSON-Text und Verwenden dieser Werte in Abfragen
Wenn Sie JSON-Text verwenden, der in Datenbanktabellen gespeichert ist, können Sie Werte in dem JSON-Text lesen oder ändern, indem Sie die folgenden integrierten Funktionen verwenden:
- ISJSON (Transact-SQL) testet, ob eine Zeichenfolge gültige JSON-Zeichenfolgen enthält.
- JSON_VALUE (Transact-SQL) extrahiert einen Skalarwert aus einer JSON-Zeichenfolge.
- JSON_QUERY (Transact-SQL) extrahiert ein Objekt oder ein Array aus einer JSON-Zeichenfolge.
- JSON_MODIFY (Transact-SQL) ändert einen Wert in der JSON-Zeichenfolge.
Beispiel
Im folgenden Beispiel verwendet die Abfrage sowohl relationale als auch JSON-Daten (gespeichert in der Spalte jsonCol
) aus der Tabelle People
:
SELECT Name,
Surname,
JSON_VALUE(jsonCol, '$.info.address.PostCode') AS PostCode,
JSON_VALUE(jsonCol, '$.info.address."Address Line 1"')
+ ' ' + JSON_VALUE(jsonCol, '$.info.address."Address Line 2"') AS Address,
JSON_QUERY(jsonCol, '$.info.skills') AS Skills
FROM People
WHERE ISJSON(jsonCol) > 0
AND JSON_VALUE(jsonCol, '$.info.address.Town') = 'Belgrade'
AND STATUS = 'Active'
ORDER BY JSON_VALUE(jsonCol, '$.info.address.PostCode');
Anwendungen und Tools erkennen keinen Unterschied zwischen den Werten aus skalaren Tabellenspalten und denen aus JSON-Spalten. Sie können Werte aus dem JSON-Text in jedem Teil der Transact-SQL-Abfrage verwenden (z.B. WHERE-, ORDER BY-, GROUP BY-Klauseln, Fenster-Aggregate usw.). JSON-Funktionen verwenden eine JavaScript-ähnliche Syntax zum Verweisen auf Werte in JSON-Text.
Weitere Informationen finden Sie unter Überprüfen, Abfragen und Ändern von JSON-Daten mit integrierten Funktionen (SQL Server), JSON_VALUE (Transact-SQL) und JSON_QUERY (Transact-SQL).
Ändern der JSON-Werte
Wenn Sie Teile des JSON-Texts ändern müssen, können Sie die JSON_MODIFY (Transact-SQL)-Funktion verwenden, um den Wert einer Eigenschaft in einer JSON-Zeichenfolge zu aktualisieren und die aktualisierte JSON-Zeichenfolge zurückzugeben. Im folgenden Beispiel wird der Wert einer Eigenschaft in einer Variablen aktualisiert, die JSON enthält:
DECLARE @json NVARCHAR(MAX);
SET @json = '{"info": {"address": [{"town": "Belgrade"}, {"town": "Paris"}, {"town":"Madrid"}]}}';
SET @json = JSON_MODIFY(@json, '$.info.address[1].town', 'London');
SELECT modifiedJson = @json;
Hier sehen Sie das Ergebnis.
{"info":{"address":[{"town":"Belgrade"},{"town":"London"},{"town":"Madrid"}]}}
Konvertieren der JSON-Sammlungen in ein Rowset
Eine benutzerdefinierte Abfragesprache ist zur Abfrage von JSON-Daten in SQL Server nicht erforderlich. Zum Abfragen von JSON-Daten können Sie Standard-T-SQL verwenden. Wenn Sie eine Abfrage erstellen oder JSON-Daten protokollieren müssen, können Sie die JSON-Daten einfach durch Aufrufen der OPENJSON
-Rowsetfunktion in Zeilen und Spalten konvertieren. Weitere Informationen finden Sie unter Analysieren und Transformieren von JSON-Daten mit OPENJSON.
Im folgenden Beispiel wird OPENJSON
aufgerufen, um ein Array von Objekten, das in der @json
-Variablen gespeichert ist, in ein Rowset zu transformieren, das mithilfe der SQL SELECT
-Standardanweisung abgefragt werden kann:
DECLARE @json NVARCHAR(MAX);
SET @json = N'[
{"id": 2, "info": {"name": "John", "surname": "Smith"}, "age": 25},
{"id": 5, "info": {"name": "Jane", "surname": "Smith"}, "dob": "2005-11-04T12:00:00"}
]';
SELECT *
FROM OPENJSON(@json) WITH (
id INT 'strict $.id',
firstName NVARCHAR(50) '$.info.name',
lastName NVARCHAR(50) '$.info.surname',
age INT,
dateOfBirth DATETIME2 '$.dob'
);
Hier sehen Sie das Ergebnis.
Kennung | firstName | lastName | age | dateOfBirth |
---|---|---|---|---|
2 | John | Smith | 25 | |
5 | Jane | Smith | 2005-11-04T12:00:00 |
OPENJSON
transformiert das Array von JSON-Objekten in eine Tabelle, wobei jedes Objekt als eine Zeile dargestellt wird. Die Schlüssel/Wert-Paare werden als Zellen zurückgegeben. Die Ausgabe verwendet die folgenden Regeln:
OPENJSON
konvertiert JSON-Werte in die Typen, die in derWITH
-Klausel angegeben sind.OPENJSON
kann sowohl einfache Schlüssel/Wert-Paare als auch geschachtelte, hierarchisch angeordnete Objekte verarbeiten.- Sie müssen nicht alle Felder zurückgeben, die im JSON-Text enthalten sind.
OPENJSON
gibtNULL
-Werte zurück, wenn keine JSON-Werte vorhanden sind.- Sie können optional einen Pfad zu der Typspezifikation angeben, um auf eine geschachtelte Eigenschaft, oder um mit einem anderen Namen auf eine Eigenschaft zu verweisen.
- Das optionale
strict
-Präfix im Pfad gibt an, dass die Werte für die angegebenen Eigenschaften im JSON-Text vorhanden sein müssen.
Weitere Informationen finden Sie unter Analysieren und Transformieren von JSON-Daten mit OPENJSON und OPENJSON (Transact-SQL).
JSON-Dokumente enthalten möglicherweise untergeordnete Elemente und hierarchische Daten, die relationalen Standardspalten nicht direkt zugeordnet werden können. Sie können in diesem Fall die JSON-Hierarchie vereinfachen, indem Sie die übergeordnete Entität mit untergeordneten Arrays verknüpfen.
Im folgenden Beispiel weist das zweite Objekt des Arrays untergeordnete Arrays auf, die Fähigkeiten von Personen darstellen (Skills-Array). Jedes untergeordnete Objekt kann mithilfe des zusätzlichen Funktionsaufrufs OPENJSON
analysiert werden:
DECLARE @json NVARCHAR(MAX);
SET @json = N'[
{"id": 2, "info": {"name": "John", "surname": "Smith"}, "age": 25},
{"id": 5, "info": {"name": "Jane", "surname": "Smith", "skills": ["SQL", "C#", "Azure"]}, "dob": "2005-11-04T12:00:00"}
]';
SELECT id,
firstName,
lastName,
age,
dateOfBirth,
skill
FROM OPENJSON(@json) WITH (
id INT 'strict $.id',
firstName NVARCHAR(50) '$.info.name',
lastName NVARCHAR(50) '$.info.surname',
age INT,
dateOfBirth DATETIME2 '$.dob',
skills NVARCHAR(MAX) '$.info.skills' AS JSON
)
OUTER APPLY OPENJSON(skills) WITH (skill NVARCHAR(8) '$');
Das skills
-Array wird im ersten OPENJSON
als ursprüngliches JSON-Textfragment zurückgegeben und mithilfe des APPLY
-Operators an eine andere OPENJSON
-Funktion übergeben. Die zweite OPENJSON
-Funktion analysiert das JSON-Array und gibt Zeichenfolgenwerte als Rowsets mit nur einer Spalte zurück, die mit dem Ergebnis des ersten OPENJSON
-Elements verknüpft werden.
Hier sehen Sie das Ergebnis.
Kennung | firstName | lastName | age | dateOfBirth | skill |
---|---|---|---|---|---|
2 | John | Smith | 25 | ||
5 | Jane | Smith | 2005-11-04T12:00:00 | SQL | |
5 | Jane | Smith | 2005-11-04T12:00:00 | C# | |
5 | Jane | Smith | 2005-11-04T12:00:00 | Azure |
OUTER APPLY OPENJSON
verknüpft die Entität auf der ersten Ebene mit dem untergeordneten Array und gibt ein vereinfachtes Resultset zurück. Aufgrund der JOIN-Methode wird die zweite Zeile für jedes Skill-Array wiederholt.
Konvertieren von SQL Server-Daten in JSON oder Exportieren von JSON
Hinweis
Das Konvertieren von Azure Synapse Analytics-Daten in JSON oder das Exportieren von JSON wird nicht unterstützt.
Formatieren Sie Daten aus SQL Server oder die Ergebnisse von SQL-Abfragen im JSON-Format, indem Sie die FOR JSON
-Klausel einer SELECT
-Anweisung hinzufügen. Verwenden Sie FOR JSON
, um die Formatierung der JSON-Ausgabe von den Clientanwendungen an SQL Server zu delegieren. Weitere Informationen finden Sie unter Formatieren von Abfrageergebnissen als JSON mit FOR JSON.
Im folgenden Beispiel wird der PATH-Modus mit der FOR JSON
-Klausel verwendet:
SELECT id,
firstName AS "info.name",
lastName AS "info.surname",
age,
dateOfBirth AS dob
FROM People
FOR JSON PATH;
Die FOR JSON
-Klausel formatiert SQL-Ergebnisse als JSON-Text, der für alle Apps bereitgestellt werden kann, die JSON verstehen. Die Option PATH verwendet in der SELECT-Klausel durch Punkte getrennte Aliase, um Objekte in den Abfrageergebnissen zu schachteln.
Hier sehen Sie das Ergebnis.
[
{
"id": 2,
"info": {
"name": "John",
"surname": "Smith"
},
"age": 25
},
{
"id": 5,
"info": {
"name": "Jane",
"surname": "Smith"
},
"dob": "2005-11-04T12:00:00"
}
]
Weitere Informationen finden Sie unter Formatieren von Abfrageergebnissen als JSON mit FOR JSON und FOR-Klausel (Transact-SQL).
JSON-Daten aus Aggregaten
JSON-Aggregatfunktionen ermöglichen das Erstellen von JSON-Objekten oder -Arrays basierend auf einem Aggregat aus SQL-Daten.
- JSON_OBJECTAGG erstellt ein JSON-Objekt aus einer Aggregation von SQL-Daten oder -Spalten.
- JSON_ARRAYAGG erstellt ein JSON-Array aus einer Aggregation von SQL-Daten oder -Spalten.
Hinweis
Sowohl json-Aggregatfunktionen JSON_OBJECTAGG
als JSON_ARRAYAGG
auch derzeit in der Vorschau für Azure SQL-Datenbank und Azure SQL verwaltete Instanz (konfiguriert mit der Always-up-up-to-date-Updaterichtlinie).
Anwendungsfälle für JSON-Daten in SQL Server
Durch die JSON-Unterstützung in SQL Server und Azure SQL-Datenbank können Sie relationale Konzepte mit NoSQL-Konzepten verbinden. Dadurch lassen sich relationale Daten leicht in teilweise strukturierte Daten und umgekehrt transformieren. JSON ist jedoch kein Ersatz für vorhandene relationale Modelle. Im Folgenden werden einige spezifische Anwendungsfälle beschrieben, in denen die JSON-Unterstützung in SQL Server und SQL-Datenbank genutzt wird.
Vereinfachen komplexer Datenmodelle
Denormalisieren Sie Ihr Datenmodell mit JSON-Feldern anstelle von mehreren untergeordneten Tabellen.
Speichern von Einzelhandels- und E-Commerce-Daten
Speichern Sie Informationen über Produkte mit vielen veränderbaren Attributen in einem denormalisierten Modell, um mehr Flexibilität zu erhalten.
Verarbeiten von Protokoll- und Telemetriedaten
Laden Sie als JSON-Dateien gespeicherte Protokolldaten, fragen Sie diese ab und analysieren Sie sie mithilfe der leistungsfähigen Programmiersprache Transact-SQL.
Speichern von teilweise strukturieren IoT-Daten
Laden Sie bei einer Echtzeitanalyse von IoT-Daten eingehende Daten direkt in die Datenbank, anstatt sie durch Staging an einem Speicherort bereitzustellen.
Vereinfachen der REST-API-Entwicklung
Transformieren Sie relationale Daten aus Ihrer Datenbank problemlos in das JSON-Format, das von den REST-APIs verwendet wird, die Ihre Website unterstützen.
Kombinieren von relationalen und JSON-Daten
SQL Server bietet ein Hybridmodell zum Speichern und Verarbeiten von relationalen Daten und JSON-Daten, indem die Transact-SQL-Standardsprache verwendet wird. Sie können Sammlungen Ihrer JSON-Dokumente nach Tabellen anordnen, Beziehungen zwischen ihnen herstellen, in Tabellen gespeicherte, stark typisierte Skalarspalten mit flexiblen Schlüssel-Wert/Paaren kombinieren, die in JSON-Spalten gespeichert werden, und sowohl Skalarwerte als auch JSON-Werte in einer oder mehreren Tabellen abfragen, indem Sie vollständiges Transact-SQL verwenden.
JSON-Text wird in VARCHAR
- oder NVARCHAR
-Spalten gespeichert und als Nur-Text indiziert. Jede SQL Server-Funktion oder -Komponente, die Text unterstützt, unterstützt auch JSON, daher gibt es fast keine Einschränkungen hinsichtlich der Interaktion zwischen JSON und anderen SQL Server-Funktionen. Sie können JSON im Arbeitsspeicher oder in temporalen Tabellen speichern, Sicherheitsprädikate auf Zeilenebene auf JSON-Text anwenden usw.
Hier sind einige Anwendungsfälle, die veranschaulichen, wie Sie die integrierte JSON-Unterstützung in SQL Server verwenden können.
Speichern und Indizieren von JSON-Daten in SQL Server
JSON ist ein Textformat. Deshalb können JSON-Dokumente in einer SQL-Datenbank-Instanz in NVARCHAR
-Spalten gespeichert werden. Da der Typ NVARCHAR
in allen untergeordneten Systemen von SQL Server unterstützt wird, können Sie JSON-Dokumente in Tabellen mit gruppierten Columnstore-Indizes, in speicheroptimierten Tabellen oder in externen Dateien speichern, die mit OPENROWSET oder PolyBase gelesen werden können.
Weitere Informationen zu den verschiedenen Optionen zum Speichern, Indizieren und Optimieren von JSON-Daten in SQL Server finden Sie unter:
- Speichern von JSON-Dokumenten in SQL Server oder SQL-Datenbank
- Indizieren von JSON-Daten
- Optimieren der JSON-Verarbeitung mit In-Memory-OLTP
Laden von JSON-Dateien in SQL Server
Sie können Informationen, die in Dateien gespeichert sind, als Standard-JSON oder als JSON-Text formatieren, in dem Zeilenumbrüche als Trennzeichen verwendet werden. SQL Server kann die Inhalte aus JSON-Dateien importieren, mit den Funktionen OPENJSON
oder JSON_VALUE
analysieren und in Tabellen laden.
Wenn Ihre JSON-Dokumente in lokalen Dateien, auf freigegebenen Netzlaufwerken oder ein Azure Files-Speicherorten gespeichert sind, auf die SQL Server zugreifen kann, können Sie einen Massenimport durchführen, um die JSON-Daten in SQL Server zu laden.
Wenn Ihre JSON-Dateien, die Zeilenumbrüche als Trennzeichen verwenden, in Azure-Blobspeicher oder im Hadoop-Dateisystem gespeichert werden, können Sie den JSON-Text mithilfe von PolyBase laden, in Transact-SQL-Code analysieren und in Tabellen laden.
Importieren von JSON-Daten in SQL Server-Tabellen
Wenn Sie JSON-Daten aus einem externen Dienst in SQL Server laden müssen, können Sie die Daten mit OPENJSON
in SQL Server importieren, anstatt sie in der Anwendungsschicht zu analysieren.
Verwenden Sie in unterstützten Plattformen den nativen json-Datentyp anstelle von nvarchar(max) für eine verbesserte Leistung und effizienteren Speicher.
DECLARE @jsonVariable NVARCHAR(MAX);
SET @jsonVariable = N'[
{
"Order": {
"Number":"SO43659",
"Date":"2011-05-31T00:00:00"
},
"AccountNumber":"AW29825",
"Item": {
"Price":2024.9940,
"Quantity":1
}
},
{
"Order": {
"Number":"SO43661",
"Date":"2011-06-01T00:00:00"
},
"AccountNumber":"AW73565",
"Item": {
"Price":2024.9940,
"Quantity":3
}
}
]';
-- INSERT INTO <sampleTable>
SELECT SalesOrderJsonData.*
FROM OPENJSON(@jsonVariable, N'$') WITH (
Number VARCHAR(200) N'$.Order.Number',
Date DATETIME N'$.Order.Date',
Customer VARCHAR(200) N'$.AccountNumber',
Quantity INT N'$.Item.Quantity'
) AS SalesOrderJsonData;
Sie können den Inhalt der JSON-Variablen durch eine externen REST-Dienst bereitstellen, als Parameter aus einem clientseitigen JavaScript-Framework senden oder aus externen Dateien laden. Sie können Ergebnisse aus JSON-Text ganz einfach in eine SQL Server-Tabelle einfügen, dort aktualisieren oder zusammenführen.
Analysieren von JSON-Daten mit SQL-Abfragen
Wenn Sie JSON-Daten für Berichtszwecke filtern oder aggregieren müssen, können Sie JSON mit OPENJSON
in ein relationales Format transformieren. Sie können dann Standard-Transact-SQL-Funktionen oder integrierte Funktionen verwenden, um die Berichte vorzubereiten.
SELECT Tab.Id,
SalesOrderJsonData.Customer,
SalesOrderJsonData.Date
FROM SalesOrderRecord AS Tab
CROSS APPLY OPENJSON(Tab.json, N'$.Orders.OrdersArray') WITH (
Number VARCHAR(200) N'$.Order.Number',
Date DATETIME N'$.Order.Date',
Customer VARCHAR(200) N'$.AccountNumber',
Quantity INT N'$.Item.Quantity'
) AS SalesOrderJsonData
WHERE JSON_VALUE(Tab.json, '$.Status') = N'Closed'
ORDER BY JSON_VALUE(Tab.json, '$.Group'),
Tab.DateModified;
Sie können sowohl Standardtabellenspalten als auch Werte aus JSON-Text in derselben Abfrage verwenden. Sie können Indizes zum JSON_VALUE(Tab.json, '$.Status')
-Ausdruck hinzufügen, um die Leistung der Abfrage zu verbessern. Weitere Informationen finden Sie unter Indizieren von JSON-Daten.
Rückgabe von Daten aus einer SQL Server-Tabelle im JSON-Format
Wenn Sie einen Webdienst verwenden, der Daten von der Datenbankebene übernimmt und sie im JSON-Format zurückgibt, oder wenn Sie JavaScript-Frameworks oder -Bibliotheken haben, die Daten im JSON-Format akzeptieren, können Sie JSON-Ausgabe direkt in einer SQL-Abfrage formatieren. Anstatt Code zu schreiben oder eine Bibliothek einzuschließen, um tabellarische Abfrageergebnisse zu konvertieren und dann Objekte in das JSON-Format zu serialisieren, können Sie auch FOR JSON
verwenden, um die JSON-Formatierung an SQL Server zu delegieren.
Sie können z.B. eine JSON-Ausgabe generieren, die der OData-Spezifikation entspricht. Der Webdienst erwartet eine Anforderung und Antwort im folgenden Format:
Anforderung:
/Northwind/Northwind.svc/Products(1)?$select=ProductID,ProductName
Antwort:
{"@odata.context": "https://services.odata.org/V4/Northwind/Northwind.svc/$metadata#Products(ProductID,ProductName)/$entity", "ProductID": 1, "ProductName": "Chai"}
Diese OData-URL stellt eine Anforderung für die Spalten „ProductID“ und „ProductName“ für das Produkt mit der ID
1 dar. Sie können FOR JSON
verwenden, um die Ausgabe erwartungsgemäß in SQL Server zu formatieren.
SELECT 'https://services.odata.org/V4/Northwind/Northwind.svc/$metadata#Products(ProductID,ProductName)/$entity' AS '@odata.context',
ProductID,
Name as ProductName
FROM Production.Product
WHERE ProductID = 1
FOR JSON AUTO;
Diese Abfrage gibt JSON-Text zurück, der vollständig mit der OData-Spezifikation kompatibel ist. Formatierungen und Escapezeichen werden von SQL Server verarbeitet. SQL Server kann Abfrageergebnisse auch in einem beliebigen Format formatieren, etwa OData JSON oder GeoJSON.
Testen Sie die integrierte JSON-Unterstützung mithilfe der AdventureWorks-Beispieldatenbank.
Laden Sie zum Abrufen der AdventureWorks-Beispieldatenbank zumindest die Datenbankdatei und die Beispiel- und Skriptdatei von GitHub herunter.
Extrahieren Sie die Beispieldateien nach der Wiederherstellung der Beispieldatenbank in einer Instanz von SQL Server, und öffnen Sie dann die Datei JSON Sample Queries procedures views and indexes.sql
aus dem JSON-Ordner. Führen Sie die Skripts in dieser Datei aus, um einige der vorhandenen Daten als JSON-Daten neu zu formatieren, testen Sie Beispielabfragen und -berichte für die JSON-Daten, indizieren Sie die JSON-Daten, und importieren und exportieren Sie JSON.
Mit den Skripts, die in der Datei enthalten sind, haben Sie die folgenden Möglichkeiten:
Denormalisieren Sie die vorhandenen Schemas, um Spalten mit JSON-Daten zu erstellen.
Speichern Sie Informationen aus
SalesReasons
,SalesOrderDetails
,SalesPerson
,Customer
und anderen Tabellen, die Informationen im Zusammenhang mit dem Auftrag enthalten, in JSON-Spalten in derSalesOrder_json
-Tabelle.Speichern Sie Informationen aus den Tabellen
EmailAddresses
undPersonPhone
als Arrays von JSON-Objekten in der TabellePerson_json
.
Erstellen Sie Prozeduren und Sichten, die JSON-Daten abfragen.
Indizieren Sie die JSON-Daten. Erstellen Sie Indizes zu JSON-Eigenschaften und Volltextindizes.
Importieren und exportieren Sie JSON. Erstellen Sie Prozeduren und führen sie aus, die den Inhalt der Tabellen
Person
undSalesOrder
als JSON-Ergebnisse exportieren, und importieren und exportieren Sie die TabellenPerson
undSalesOrder
mithilfe der JSON-Eingabe.Führen Sie Abfragebeispiele aus. Führen Sie einige Abfragen aus, die die gespeicherten Prozeduren und Sichten aufrufen, die Sie in den Schritten 2 und 4 erstellt haben.
Bereinigen Sie Skripts. Führen Sie diesen Teil nicht aus, wenn Sie die gespeicherten Prozeduren und Sichten beibehalten möchten, die Sie in den Schritten 2 und 4 erstellt haben.