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ümleri
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics (serverless SQL pool only)
SQL database in Microsoft Fabric
Aşağıdaki örneklerde, SQL Server'da veya istemci uygulamalarında FOR JSON yan tümcesini ve JSON çıkışını kullanmanın bazı yolları gösterilmektedir. Daha fazla bilgi için bkz. FOR JSON ile sorgu sonuçlarını JSON olarak biçimlendirme.
Fabric Veri Ambarı'nda, FOR JSON sorgunun son işleci olmalıdır ve bu yüzden, bu makaledeki örneklerde olduğu gibi, alt sorgular içinde kullanılamaz.
SQL Veritabanı Altyapısı değişkenlerinde FOR JSON çıkışını kullanma
FOR JSON yan tümcesinin çıkışı nvarchar(max) türündedir, bu nedenle aşağıdaki örnekte gösterildiği gibi herhangi bir değişkene atayabilirsiniz.
DECLARE @x NVARCHAR(MAX) =
(SELECT TOP 10 *
FROM Sales.SalesOrderHeader
FOR JSON AUTO)
SQL Veritabanı Altyapısı kullanıcı tanımlı işlevlerinde FOR JSON çıktısını kullanma
Sonuç kümelerini JSON olarak biçimlendiren ve bu JSON çıkışını döndüren kullanıcı tanımlı işlevler oluşturabilirsiniz. Aşağıdaki örnek, bazı satış siparişi ayrıntı satırlarını getiren ve bunları JSON dizisi olarak biçimlendiren kullanıcı tanımlı bir işlev oluşturur.
CREATE FUNCTION GetSalesOrderDetails(@salesOrderId int)
RETURNS NVARCHAR(MAX)
AS
BEGIN
RETURN (SELECT UnitPrice, OrderQty
FROM Sales.SalesOrderDetail
WHERE SalesOrderID = @salesOrderId
FOR JSON AUTO)
END
Aşağıdaki örnekte gösterildiği gibi bu işlevi bir toplu iş veya sorguda kullanabilirsiniz.
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
Ebeveyn ve çocuk verilerini tek bir tabloda birleştirme
Aşağıdaki örnekte, her alt satır kümesi bir JSON dizisi olarak biçimlendirilmiştir. JSON dizisi, üst tablodaki Details sütununun değeri olur.
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
JSON sütunlarındaki verileri güncelleştirme
Aşağıdaki örnek, JSON metni içeren bir sütunun değerini güncelleştirebileceğinizi gösterir.
UPDATE SalesOrder
SET Details =
(SELECT TOP 1 UnitPrice, OrderQty
FROM Sales.SalesOrderDetail D
WHERE D.SalesOrderId = SalesOrder.SalesOrderId
FOR JSON AUTO)
C# istemci uygulamasında FOR JSON çıkışını kullanma
Aşağıdaki örnekte, bir sorgunun JSON çıkışını C# istemci uygulamasındaki bir StringBuilder nesnesine alma işlemi gösterilmektedir.
queryWithForJson isimli değişkenin, SELECT yan tümcesi içeren bir FOR JSON ifadesinin metnini içerdiğini varsayalım.
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());
}
}
}
}
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:
İlgili içerik
- FOR JSON ile sorgu sonuçlarını JSON olarak biçimlendirme