Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümler
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics (serverless SQL pool only)
SQL analytics endpoint in Microsoft Fabric
Warehouse SQL
databasein Microsoft Fabric
Açık bir şema ile OPENJSON, WITH yan tümcesinde belirttiğiniz şekilde biçimlendirilmiş bir tablo döndürmek için kullanın.
Açık bir şemayla OPENJSON kullanan bazı örnekler aşağıda verilmiştir. Daha fazla bilgi için bkz. OPENJSON (Transact-SQL).
Örnek - Çıkışı biçimlendirmek için WITH yan tümcesini kullanın
Aşağıdaki sorgu, aşağıdaki tabloda gösterilen sonuçları döndürür.
AS JSON yan tümcesinin, col5 ve array_element'deki değerlerin skaler değerler yerine JSON nesneleri olarak döndürülmesine neden olduğuna dikkat edin.
DECLARE @json NVARCHAR(MAX) =
N'{"someObject":
{"someArray":
[
{"k1": 11, "k2": null, "k3": "text"},
{"k1": 21, "k2": "text2", "k4": { "data": "text4" }},
{"k1": 31, "k2": 32},
{"k1": 41, "k2": null, "k4": { "data": false }}
]
}
}'
SELECT * FROM
OPENJSON(@json, N'lax $.someObject.someArray')
WITH ( k1 int,
k2 varchar(100),
col3 varchar(6) N'$.k3',
col4 varchar(10) N'lax $.k4.data',
col5 nvarchar(MAX) N'lax $.k4' AS JSON,
array_element nvarchar(MAX) N'$' AS JSON
)
Results
| k1 | k2 | col3 | col4 | col5 | array_element |
|---|---|---|---|---|---|
| 11 | NULL | "text" | NULL | NULL | {"k1": 11, "k2": null, "k3": "text"} |
| 21 | "text2" | NULL | "text4" | { "data": "text4" } | {"k1": true, "k2": "text2", "k4": { "data": "text4" } } |
| 31 | "32" | NULL | NULL | NULL | {"k1": 31, "k2": 32 } |
| 41 | NULL | NULL | false | { "data": yanlış } | {"k1": 41, "k2": null, "k4": { "data": false } } |
Örnek - JSON'yi bir SQL Server tablosuna yükleyin.
Aşağıdaki örnek, JSON nesnesinin tamamını bir SQL Server tablosuna yükler.
DECLARE @json NVARCHAR(MAX) = '{
"id" : 2,
"firstName": "John",
"lastName": "Smith",
"isAlive": true,
"age": 25,
"dateOfBirth": "2015-03-25T12:00:00",
"spouse": null
}';
INSERT INTO Person
SELECT *
FROM OPENJSON(@json)
WITH (id int,
firstName nvarchar(50), lastName nvarchar(50),
isAlive bit, age int,
dateOfBirth datetime2, spouse nvarchar(50))
SQL Veritabanı Altyapısı'nda JSON hakkında daha fazla bilgi edinin
Yerleşik JSON desteğine görsel bir giriş için aşağıdaki videolara bakın: