Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op: SQL Server 2025 (17.x) Preview
AzureSQL Database Azure SQL Managed Instance
SQL-database
in Microsoft Fabric
Het systeemeigen json-gegevenstype waarin JSON-documenten in een systeemeigen binaire indeling worden opgeslagen.
De json type biedt een hoogwaardige opslag van JSON-documenten die zijn geoptimaliseerd voor eenvoudige query's en manipulatie en biedt de volgende voordelen ten opzichte van het opslaan van JSON-gegevens in varchar- of nvarchar-:
- Efficiëntere leesbewerkingen, omdat het document al wordt geparseerd
- Efficiëntere schrijfbewerkingen, omdat de query afzonderlijke waarden kan bijwerken zonder het hele document te openen
- Efficiëntere opslag, geoptimaliseerd voor compressie
- Geen wijziging in compatibiliteit met bestaande code
Het json- type slaat gegevens intern op met behulp van UTF-8-codering, Latin1_General_100_BIN2_UTF8
. Dit gedrag komt overeen met de JSON-specificatie.
Zie JSON-gegevens in SQL Servervoor meer informatie over het uitvoeren van query's op JSON-gegevens.
Voorbeeldsyntaxis
De gebruiksyntaxis voor het json- type is vergelijkbaar met alle andere SQL Server-gegevenstypen in een tabel.
column_name JSON [NOT NULL | NULL] [CHECK(constraint_expression)] [DEFAULT(default_expression)]
Het type json- kan worden gebruikt in de kolomdefinitie in een CREATE TABLE
-instructie, bijvoorbeeld:
CREATE TABLE Orders (order_id int, order_details JSON NOT NULL);
Beperkingen kunnen worden opgegeven als onderdeel van de kolomdefinitie, bijvoorbeeld:
CREATE TABLE Orders (order_id int, order_details JSON NOT NULL
CHECK (JSON_PATH_EXISTS(order_details, '$.basket') = 1)
);
Beschikbaarheid van functies
JSON-functieondersteuning is voor het eerst geïntroduceerd in SQL Server 2016 (13.x). Het systeemeigen type json is in 2024 geïntroduceerd in Azure SQL Database en Azure SQL Managed Instance.
json- is beschikbaar onder alle databasecompatibiliteitsniveaus.
Notitie
Het JSON-gegevenstype:
- is algemeen beschikbaar voor Azure SQL Database en Azure SQL Managed Instance die zijn geconfigureerd met het always-up-to-datum-updatebeleid.
- is in preview voor SQL Server 2025 (17.x) Preview.
methode wijzigen
Notitie
modify
de methode is momenteel beschikbaar als preview-versie en is alleen beschikbaar in SQL Server 2025 (17.x) Preview.
Het systeemeigen json-type ondersteunt de modify
methode. Hiermee modify
kunt u JSON-documenten wijzigen die zijn opgeslagen in een kolom. De modify
methode heeft optimalisaties om waar mogelijk in-place wijzigingen in de gegevens uit te voeren en is de voorkeurswijze om een JSON-document in een json-typekolom te wijzigen.
Als voor JSON-tekenreeksen de nieuwe waarde kleiner is dan of gelijk is aan de bestaande waarde, is in-place aanpassing mogelijk.
Als voor JSON-getallen de nieuwe waarde van hetzelfde type is of binnen het bereik van de bestaande waarde, is in-place wijziging mogelijk.
DROP TABLE IF EXISTS JsonTable;
CREATE TABLE JsonTable ( id int PRIMARY KEY, d JSON );
INSERT INTO JsonTable (id, d) VALUES(1, '{"a":1, "b":"abc", "c":true}');
UPDATE JsonTable
SET d.modify('$.a', 14859)
WHERE id = 1;
UPDATE JsonTable
SET d.modify('$.b', 'def')
WHERE id = 1;
Functieondersteuning
Alle JSON-functies ondersteunen het json- type zonder dat er codewijzigingen of gebruiksverschillen nodig zijn.
-
OPENJSON
biedt momenteel geen ondersteuning voor het JSON-gegevenstype op sommige platforms. Zie Beperkingen voor meer informatie.
Zie JSON-functiesvoor een volledige lijst met JSON-functies.
Indexen
Er zijn geen speciale indextypen voor JSON-gegevens.
Het type json kan niet worden gebruikt als sleutelkolom in een CREATE INDEX
-instructie. Een json- kolom kan echter worden opgegeven als een opgenomen kolom in een indexdefinitie. Daarnaast kan een json- kolom worden weergegeven in de WHERE
component van een gefilterde index.
Conversie
Expliciete conversie met behulp van
Het json-type kan niet worden gebruikt met het sql_variant type of toegewezen aan een sql_variant variabele of kolom. Deze beperking is vergelijkbaar met varchar(max), varbinary(max), nvarchar(max), xml-en clr-gegevenstypen.
U kunt bestaande kolommen, zoals een varchar(max) kolom, converteren naar json- met behulp van ALTER TABLE
. Net als bij het xml- gegevenstype kunt u een json- kolom niet converteren naar een van de tekenreeks- of binaire typen met behulp van ALTER TABLE
.
Zie Gegevenstypeconversievoor meer informatie.
Compatibiliteit
Het json- type kan worden gebruikt als parameter of retourtype in een door de gebruiker gedefinieerde functie of de parameter van een opgeslagen procedure. Het type json is compatibel met triggers en weergaven.
Momenteel bevat de systeemeigen indeling van de bcp het json--document als varchar of nvarchar. U moet een indelingsbestand opgeven om een json- gegevenstypekolom aan te wijzen.
Het maken van aliastype met CREATE TYPE
voor het json--type is niet toegestaan. Dit is hetzelfde gedrag als xml- type.
Als u SELECT ... INTO
gebruikt met het JSON-type, maakt u een tabel met het JSON-type.
Beperkingen
- Het gedrag van het retourneren van
CAST ( ... AS JSON)
een json-type , maar de sp_describe_first_result_set systeem opgeslagen procedure retourneert het json-gegevenstype niet correct. Daarom zien veel clients en stuurprogramma's voor gegevenstoegang een varchar- of nvarchar gegevenstype.- Momenteel ziet TDS >= 7,4 (met UTF-8) varchar(max) met
Latin_General_100_bin2_utf8
. - Momenteel ziet TDS < 7.4 nvarchar(max) met databasesortering.
- Momenteel ziet TDS >= 7,4 (met UTF-8) varchar(max) met
- Op dit moment accepteert de
OPENJSON()
functie het json-type in sommige platforms niet. Momenteel is het een impliciete conversie. Converteer expliciet naar nvarchar(max) eerst.- In SQL Server 2025 (preview) ondersteunt de
OPENJSON()
functie het json-type . Zie De belangrijkste JSON-mogelijkheden in SQL Server 2025 voor meer informatie.
- In SQL Server 2025 (preview) ondersteunt de
Verwante inhoud
- JSON-documenten opslaan
- JSON-gegevens in SQL Server