Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: SQL Server 2016 (13.x) dan versi
yang lebih baru Azure SQL Database
AzureSQL Managed Instance
Azure Synapse Analytics (hanya kumpulan SQL tanpa server)
Database SQL di Microsoft Fabric
Contoh berikut menunjukkan beberapa cara untuk menggunakan FOR JSON klausul dan output JSON-nya di SQL Server atau di aplikasi klien. Untuk informasi selengkapnya, lihat Memformat hasil kueri sebagai JSON dengan FOR JSON.
Di Fabric Data Warehouse, FOR JSON harus menjadi operator terakhir dalam kueri, sehingga tidak diizinkan di dalam subkueri, seperti dalam contoh dalam artikel ini.
Menggunakan output FOR JSON dalam variabel SQL Database Engine
Output klausul FOR JSON berjenis nvarchar(max), sehingga Anda dapat menetapkannya ke variabel apa pun, seperti yang ditunjukkan dalam contoh berikut.
DECLARE @x NVARCHAR(MAX) =
(SELECT TOP 10 *
FROM Sales.SalesOrderHeader
FOR JSON AUTO)
Menggunakan output FOR JSON dalam fungsi yang ditentukan pengguna SQL Database Engine
Anda dapat membuat fungsi yang ditentukan pengguna yang memformat tataan hasil sebagai JSON dan mengembalikan output JSON ini. Contoh berikut membuat fungsi yang ditentukan pengguna yang mengambil beberapa baris detail pesanan penjualan dan memformatnya sebagai array JSON.
CREATE FUNCTION GetSalesOrderDetails(@salesOrderId int)
RETURNS NVARCHAR(MAX)
AS
BEGIN
RETURN (SELECT UnitPrice, OrderQty
FROM Sales.SalesOrderDetail
WHERE SalesOrderID = @salesOrderId
FOR JSON AUTO)
END
Anda bisa menggunakan fungsi ini dalam batch atau kueri, seperti yang diperlihatkan dalam contoh berikut.
DECLARE @x NVARCHAR(MAX) = dbo.GetSalesOrderDetails(43659)
PRINT dbo.GetSalesOrderDetails(43659)
SELECT TOP 10
H.*, dbo.GetSalesOrderDetails(H.SalesOrderId) AS Details
FROM Sales.SalesOrderHeader H
Menggabungkan data induk dan anak ke dalam satu tabel
Dalam contoh berikut, setiap set baris anak diformat sebagai array JSON. Array JSON menjadi nilai kolom Detail dalam tabel induk.
SELECT TOP 10 SalesOrderId, OrderDate,
(SELECT TOP 3 UnitPrice, OrderQty
FROM Sales.SalesOrderDetail D
WHERE H.SalesOrderId = D.SalesOrderID
FOR JSON AUTO) AS Details
INTO SalesOrder
FROM Sales.SalesOrderHeader H
Memperbarui data di kolom JSON
Contoh berikut menunjukkan bahwa Anda dapat memperbarui nilai kolom yang berisi teks JSON.
UPDATE SalesOrder
SET Details =
(SELECT TOP 1 UnitPrice, OrderQty
FROM Sales.SalesOrderDetail D
WHERE D.SalesOrderId = SalesOrder.SalesOrderId
FOR JSON AUTO)
Menggunakan output FOR JSON di aplikasi klien C#
Contoh berikut menunjukkan cara mengambil output JSON kueri ke objek StringBuilder di aplikasi klien C#. Asumsikan bahwa variabel queryWithForJson berisi teks SELECT pernyataan dengan FOR JSON klausa.
var queryWithForJson = "SELECT ... FOR JSON";
using(var conn = new SqlConnection("<connection string>"))
{
using(var cmd = new SqlCommand(queryWithForJson, conn))
{
conn.Open();
var jsonResult = new StringBuilder();
var reader = cmd.ExecuteReader();
if (!reader.HasRows)
{
jsonResult.Append("[]");
}
else
{
while (reader.Read())
{
jsonResult.Append(reader.GetValue(0).ToString());
}
}
}
}
Pelajari selengkapnya tentang JSON di SQL Database Engine
Untuk pengenalan visual dukungan JSON bawaan, lihat video berikut ini: