Aracılığıyla paylaş


SQL Server'da JSON verileri

Şunlar için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümleri Microsoft Fabric'te Azure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAzure Synapse AnalyticsSQL veritabanı

Bu makalede SQL Server, Azure SQL Veritabanı, Azure SQL Yönetilen Örneği, Azure Synapse Analytics ve Microsoft Fabric'teki SQL veritabanında metin veri biçimi JSON'a genel bir bakış sağlanır.

Note

JSON desteği için veritabanı uyumluluk düzeyi 130 veya üzeri gerekir.

Overview

JSON, modern web ve mobil uygulamalarda veri alışverişi için kullanılan popüler bir metinsel veri biçimidir. JSON, yapılandırılmamış verileri günlük dosyalarında veya Microsoft Azure Cosmos DB gibi NoSQL veritabanlarında depolamak için de kullanılır. Birçok REST web hizmeti, JSON metni olarak biçimlendirilmiş sonuçlar döndürür veya JSON olarak biçimlendirilmiş verileri kabul edin. Örneğin, Azure Search, Azure Depolama ve Azure Cosmos DB gibi çoğu Azure hizmetinde JSON döndüren veya kullanan REST uç noktaları vardır. JSON ayrıca AJAX çağrılarını kullanarak web sayfaları ve web sunucuları arasında veri alışverişi için kullanılan ana biçimdir.

İlk olarak SQL Server 2016'da (13.x) kullanıma sunulan JSON işlevleri, NoSQL ve ilişkisel kavramları aynı veritabanında birleştirmenizi sağlar. Klasik ilişkisel sütunları aynı tabloda JSON metni olarak biçimlendirilmiş belgeler içeren sütunlarla birleştirebilir, JSON belgelerini ilişkisel yapılarda ayrıştırabilir ve içeri aktarabilir veya ilişkisel verileri JSON metnine biçimlendirebilirsiniz.

Aşağıda bir JSON metni örneği verilmiştir:

[
    {
        "name": "John",
        "skills": [ "SQL", "C#", "Azure" ]
    },
    {
        "name": "Jane",
        "surname": "Doe"
    }
]

SQL Server yerleşik işlevlerini ve işleçlerini kullanarak JSON metniyle aşağıdaki şeyleri yapabilirsiniz:

  • JSON metnini ayrıştırma ve değerleri okuma veya değiştirme.
  • JSON nesnelerinin dizilerini tablo biçimine dönüştürün.
  • Dönüştürülen JSON nesnelerinde herhangi bir Transact-SQL sorgusu çalıştırın.
  • Transact-SQL sorgularının sonuçlarını JSON biçiminde biçimlendirin.

Yerleşik JSON desteğine genel bakışı gösteren diyagram.

SQL Server 2025 değişiklikleri

SQL Server 2025 (17.x) şu anda önizleme aşamasında olan aşağıdaki JSON geliştirmelerini kullanıma sunms:

Önemli JSON özellikleri

Sonraki bölümlerde SQL Server'ın yerleşik JSON desteğiyle sağladığı temel özellikler açıklanmıştır.

JSON veri türü

Note

JSON veri türü:

  • , SQL Server 2025 veya Always-up-to-dategüncelleştirme ilkesi ile Azure SQL Veritabanı ve Azure SQL Yönetilen Örneği için genel kullanıma sunulmuştur.
  • SQL Server 2025 (17.x) ve Fabric'teki SQL veritabanı için önizleme aşamasındadır.

JSON belgelerini yerel ikili biçimde depolayan yeni json veri türü, JSON verilerinin varchar/nvarchar içinde depolanmasına göre aşağıdaki avantajları sağlar:

  • Belge zaten ayrıştırılmış olduğundan daha verimli okumalar
  • Sorgu, belgenin tamamına erişmeden tek tek değerleri güncelleştirene kadar daha verimli yazma işlemleri
  • Sıkıştırma için iyileştirilmiş daha verimli depolama
  • Mevcut kodla uyumlulukta değişiklik yok

Bu makalede açıklanan JSON işlevlerinin aynısını kullanmak , json veri türünü sorgulamanın en verimli yolu olmaya devam etmektedir. Yerel json veri türü hakkında daha fazla bilgi için bkz. JSON veri türü.

JSON metnindeki değerleri ayıklama ve sorgularda kullanma

Veritabanı tablolarında depolanan JSON metniniz varsa, aşağıdaki yerleşik işlevleri kullanarak JSON metnindeki değerleri okuyabilir veya değiştirebilirsiniz:

  • ISJSON , bir dizenin geçerli JSON içerip içermediğini test ediyor.
  • JSON_VALUE bir JSON dizesinden skaler değer ayıklar.
  • JSON_QUERY bir JSON dizesinden bir nesne veya dizi ayıklar.
  • JSON_MODIFY bir JSON dizesindeki değeri değiştirir.

Example

Aşağıdaki örnekte sorgu, adlı jsonColtablodan ilişkisel ve JSON verilerini (adlı Peoplebir sütunda depolanır) kullanır:

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');

Uygulamalar ve araçlar, skaler tablo sütunlarından alınan değerlerle JSON sütunlarından alınan değerler arasında hiçbir fark görmez. JSON metnindeki değerleri Transact-SQL sorgusunun herhangi bir bölümünde (WHERE, ORDER BY veya GROUP BY yan tümceleri, pencere toplamları vb.) kullanabilirsiniz. JSON işlevleri, JSON metninin içindeki değerlere başvurmak için JavaScript benzeri söz dizimi kullanır.

Daha fazla bilgi için bkz. Yerleşik işlevlerle JSON verilerini doğrulama, sorgulama ve değiştirme, JSON_VALUE ve JSON_QUERY.

JSON değerlerini değiştirme

JSON metninin bölümlerini değiştirmeniz gerekiyorsa , JSON_MODIFY işlevini kullanarak bir JSON dizesindeki özelliğin değerini güncelleştirebilir ve güncelleştirilmiş JSON dizesini döndürebilirsiniz. Aşağıdaki örnek, JSON içeren bir değişkendeki bir özelliğin değerini güncelleştirir:

DECLARE @json AS NVARCHAR (MAX);

SET @json = '{"info": {"address": [{"town": "Belgrade"}, {"town": "Paris"}, {"town":"Madrid"}]}}';
SET @json = JSON_MODIFY(@json, '$.info.address[1].town', 'London');

SELECT @json AS modifiedJson;

Sonuç kümesi aşağıdadır.

{"info":{"address":[{"town":"Belgrade"},{"town":"London"},{"town":"Madrid"}]}}

JSON koleksiyonlarını satır kümesine dönüştürme

SQL Server'da JSON sorgulamak için özel sorgu diline ihtiyacınız yoktur. JSON verilerini sorgulamak için standart T-SQL kullanabilirsiniz. JSON verileri üzerinde bir sorgu veya rapor oluşturmanız gerekiyorsa, satır kümesi işlevini çağırarak JSON verilerini kolayca satırlara ve sütunlara OPENJSON dönüştürebilirsiniz. Daha fazla bilgi için bkz. OPENJSON ile JSON verilerini ayrıştırma ve dönüştürme.

Aşağıdaki örnek, değişkende OPENJSON depolanan nesne dizisini çağırır @json ve standart bir Transact-SQL SELECT deyimiyle sorgulanabilen bir satır kümesine dönüştürür:

DECLARE @json AS 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'
);

Sonuç kümesi aşağıdadır.

ID firstName lastName age dateOfBirth
2 John Smith 25
5 Jane Smith 2005-11-04T12:00:00

OPENJSON JSON nesneleri dizisini, her nesnenin tek satır olarak temsil edilen ve anahtar/değer çiftlerinin hücre olarak döndürüldüğü bir tabloya dönüştürür. Çıktı aşağıdaki kurallara uyar:

  • OPENJSON JSON değerlerini yan tümcesinde WITH belirtilen türlere dönüştürür.
  • OPENJSON hem düz anahtar/değer çiftlerini hem de iç içe, hiyerarşik olarak düzenlenmiş nesneleri işleyebilir.
  • JSON metnindeki tüm alanları döndürmeniz gerekmez.
  • JSON değerleri yoksa, OPENJSON değerleri döndürür NULL .
  • İsteğe bağlı olarak, iç içe bir özelliğe başvurmak veya bir özelliğe farklı bir adla başvurmak için tür belirtiminin ardından bir yol belirtebilirsiniz.
  • Yoldaki isteğe bağlı strict ön ek, belirtilen özelliklerin değerlerinin JSON metninde bulunması gerektiğini belirtir.

Daha fazla bilgi için bkz. OPENJSON ve OPENJSON ile JSON verilerini ayrıştırma ve dönüştürme.

JSON belgelerinde standart ilişkisel sütunlara doğrudan eşlenemeyen alt öğeler ve hiyerarşik veriler olabilir. Bu durumda, üst varlığı alt dizilerle birleştirerek JSON hiyerarşisini düzleştirebilirsiniz.

Aşağıdaki örnekte, dizideki ikinci nesne kişi becerilerini temsil eden alt diziye sahiptir. Her alt nesne ek OPENJSON işlev çağrısı kullanılarak ayrıştırılabilir:

DECLARE @json AS 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) '$');

Dizi skills, ilki OPENJSON olarak, özgün JSON metin parçası şeklinde döndürülür ve OPENJSON operatörü kullanılarak başka bir APPLY işleve aktarılır. İkinci OPENJSON işlev JSON dizisini ayrıştırıyor ve dize değerlerini ilk OPENJSONsonucunun sonucuyla birleştirilecek tek sütunlu satır kümesi olarak döndürecek.

Sonuç kümesi aşağıdadır.

ID 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 alt dizi ile birinci düzey varlığı birleştirir ve düzleştirilmiş sonuç döndürür. JOIN nedeniyle, ikinci satır her beceri için tekrarlanır.

SQL Server verilerini JSON'a dönüştürme veya JSON'yi dışarı aktarma

Note

Azure Synapse Analytics verilerini JSON'a dönüştürme veya JSON'ı dışarı aktarma desteklenmez.

SQL Server verilerini veya SQL sorgularının sonuçlarını JSON olarak biçimlendirmek için, FOR JSON yan tümcesini SELECT sorgu deyimine ekleyin. İstemci uygulamalarınızdaki JSON çıktısının biçimlendirmesini SQL Server'a devretmek için kullanın FOR JSON . Daha fazla bilgi için bkz. FOR JSON ile sorgu sonuçlarını JSON olarak biçimlendirme.

Aşağıdaki örnek, FOR JSON şart cümlesiyle birlikte PATH modunu kullanır:

SELECT id,
       firstName AS "info.name",
       lastName AS "info.surname",
       age,
       dateOfBirth AS dob
FROM People
FOR JSON PATH;

FOR JSON yan tümcesi, SQL sonuçlarını JSON'ı anlayan herhangi bir uygulamaya sağlanacak JSON metni olarak biçimlendirmektedir. PATH seçeneği, nesneleri sorgu sonuçlarında iç içe yerleştirmek için SELECT yan tümcesindeki noktalı takma adları kullanır.

Sonuç kümesi aşağıdadır.

[
  {
    "id": 2,
    "info": {
      "name": "John",
      "surname": "Smith"
    },
    "age": 25
  },
  {
    "id": 5,
    "info": {
      "name": "Jane",
      "surname": "Smith"
    },
    "dob": "2005-11-04T12:00:00"
  }
]

Daha fazla bilgi için bkz. FOR JSON ile sorgu sonuçlarını JSON olarak biçimlendirme ve SELECT - FOR Yan Tümcesi.

Toplamalardan JSON verileri

JSON toplama işlevleri, SQL verilerinden toplanan bir toplamaya göre JSON nesnelerinin veya dizilerinin oluşturulmasını sağlar.

  • JSON_OBJECTAGG , SQL verilerinin veya sütunlarının bir toplamasından bir JSON nesnesi oluşturur.
  • JSON_ARRAYAGG , SQL verilerinin veya sütunlarının bir toplamasından bir JSON dizisi oluşturur.

Note

JSON_OBJECTAGG ve JSON_ARRAYAGG toplama işlevleri Azure SQL Veritabanı, Azure SQL Yönetilen Örneği (SQL Server 2025 veya Always-up-to-dategüncelleştirme ilkesi ile) ve Doku Veri Ambarı için genel olarak kullanılabilir ve SQL Server 2025 (17.x) için önizleme aşamasındadır.

SQL Server'da JSON verileri için kullanım örnekleri

SQL Server ve Azure SQL Veritabanı'ndaki JSON desteği ilişkisel ve NoSQL kavramlarını birleştirmenizi sağlar. İlişkisel verileri yarı yapılandırılmış verilere ve tersine kolayca dönüştürebilirsiniz. Ancak JSON, mevcut ilişkisel modellerin yerini almaz. SQL Server'da ve SQL Veritabanı'nda JSON desteğinden yararlanan bazı özel kullanım örnekleri aşağıdadır.

  • Karmaşık veri modellerini basitleştirme

    Birden çok alt tablo yerine JSON alanlarıyla veri modelinizi normalleştirmeyi göz önünde bulundurun.

  • Perakende ve e-ticaret verilerini depolama

    Esneklik için çok çeşitli değişken özniteliklerine sahip ürünlerle ilgili bilgileri normalleştirilmiş bir modelde depolayın.

  • İşlem günlüğü ve telemetri verileri

    Transact-SQL dilinin tüm gücüyle JSON dosyaları olarak depolanan günlük verilerini yükleyin, sorgulayıp analiz edin.

  • Yarı yapılandırılmış IoT verilerini depolama

    IoT verilerinin gerçek zamanlı analizine ihtiyacınız olduğunda, gelen verileri depolama konumuna hazırlamak yerine doğrudan veritabanına yükleyin.

  • REST API geliştirmeyi basitleştirme

    İlişkisel verileri veritabanınızdan kolayca web sitenizi destekleyen REST API'leri tarafından kullanılan JSON biçimine dönüştürün.

İlişkisel ve JSON verilerini birleştirme

SQL Server, standart Transact-SQL dili kullanarak hem ilişkisel hem de JSON verilerini depolamak ve işlemek için karma bir model sağlar. JSON belgelerinizin koleksiyonlarını tablolarda düzenleyebilir, aralarında ilişkiler kurabilir, tablolarda depolanan kesin olarak yazılan skaler sütunları JSON sütunlarında depolanan esnek anahtar/değer çiftleriyle birleştirebilir ve tam Transact-SQL kullanarak bir veya daha fazla tablodaki skaler ve JSON değerlerini sorgulayabilirsiniz.

JSON metni varchar veya nvarchar sütunlarında depolanır ve düz metin olarak dizine eklenir. Metni destekleyen herhangi bir SQL Server özelliği veya bileşeni JSON'u desteklediği için JSON ile diğer SQL Server özellikleri arasındaki etkileşimde neredeyse hiçbir kısıtlama yoktur. JSON'yi bellek içi veya Zamansal tablolarda depolayabilir, JSON metnine Row-Level Güvenlik koşullarını uygulayabilir vb.

SQL Server'da yerleşik JSON desteğini nasıl kullanabileceğinizi gösteren bazı kullanım örnekleri aşağıdadır.

SQL Server'da JSON verilerini depolama ve dizine ekleme

JSON bir metin biçimidir, bu nedenle JSON belgeleri SQL Veritabanı'ndaki nvarchar sütunlarında depolanabilir. Nvarchar türü tüm SQL Server alt sistemlerinde desteklendiğinden JSON belgelerini kümelenmiş columnstore dizinleri, bellek için iyileştirilmiş tablolar veya OPENROWSET veya PolyBase kullanılarak okunabilen dış dosyalar içeren tablolara yerleştirebilirsiniz.

SQL Server'da JSON verilerini depolama, dizin oluşturma ve iyileştirme seçenekleriniz hakkında daha fazla bilgi edinmek için aşağıdaki makalelere bakın:

JSON dosyalarını SQL Server'a yükleme

Dosyalarda depolanan bilgileri standart JSON veya satırla ayrılmış JSON olarak biçimlendirebilirsiniz. SQL Server, JSON dosyalarının içeriğini içeri aktarabilir, OPENJSON veya JSON_VALUE işlevlerini kullanarak ayrıştırabilir ve tablolara yükleyebilir.

  • JSON belgeleriniz yerel dosyalarda, paylaşılan ağ sürücülerinde veya SQL Server tarafından erişilebilen Azure Dosyaları konumlarında depolanıyorsa, JSON verilerinizi SQL Server'a yüklemek için toplu içeri aktarmayı kullanabilirsiniz.

  • Satırla ayrılmış JSON dosyalarınız Azure Blob depolamada veya Hadoop dosya sisteminde depolanıyorsa PolyBase kullanarak JSON metnini yükleyebilir, Transact-SQL kodda ayrıştırabilir ve tablolara yükleyebilirsiniz.

JSON verilerini SQL Server tablolarına aktarma

JSON verilerini bir dış hizmetten SQL Server'a yüklemeniz gerekiyorsa, verileri uygulama katmanında ayrıştırmak yerine SQL Server'a aktarmak için kullanabilirsiniz OPENJSON .

Desteklenen platformlarda, gelişmiş performans ve daha verimli depolama için nvarchar(max) yerine yerel json veri türünü kullanın.

DECLARE @jsonVariable AS 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;

JSON değişkeninin içeriğini bir dış REST hizmeti tarafından sağlayabilir, istemci tarafı JavaScript çerçevesinden parametre olarak gönderebilir veya dış dosyalardan yükleyebilirsiniz. JSON metninden sonuçları kolayca BIR SQL Server tablosuna ekleyebilir, güncelleştirebilir veya birleştirebilirsiniz.

SQL sorguları ile JSON verilerini analiz etme

JSON verilerini raporlama amacıyla filtrelemeniz veya toplamanız gerekiyorsa, JSON'ı ilişkisel biçime dönüştürmek için kullanabilirsiniz OPENJSON . Ardından raporları hazırlamak için standart Transact-SQL ve yerleşik işlevleri kullanabilirsiniz.

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;

Aynı sorguda hem standart tablo sütunlarını hem de JSON metnindeki değerleri kullanabilirsiniz. Sorgunun JSON_VALUE(Tab.json, '$.Status') performansını geliştirmek için ifadeye dizinler ekleyebilirsiniz. Daha fazla bilgi için bkz. JSON verilerini dizine alma.

JSON olarak biçimlendirilmiş bir SQL Server tablosundan veri döndürme

Veritabanı katmanından veri alan ve JSON biçiminde döndüren bir web hizmetiniz varsa veya JSON olarak biçimlendirilmiş verileri kabul eden JavaScript çerçeveleriniz veya kitaplıklarınız varsa, JSON çıkışını doğrudan bir SQL sorgusunda biçimlendirebilirsiniz. Tablosal sorgu sonuçlarını dönüştürmek ve sonra nesneleri JSON biçimine seri hale getirmek için kod yazmak veya bir kitaplık eklemek yerine, JSON biçimlendirmesini SQL Server'a devretmek için kullanabilirsiniz FOR JSON .

Örneğin, OData belirtimi ile uyumlu JSON çıkışı oluşturmak isteyebilirsiniz. Web hizmeti aşağıdaki biçimde bir istek ve yanıt bekler:

  • İstek: /Northwind/Northwind.svc/Products(1)?$select=ProductID,ProductName

  • Yanıt: {"@odata.context": "https://services.odata.org/V4/Northwind/Northwind.svc/$metadata#Products(ProductID,ProductName)/$entity", "ProductID": 1, "ProductName": "Chai"}

Bu OData URL'si, 1 içeren ID ürün için ProductID ve ProductName sütunlarına yönelik bir isteği temsil eder. SQL Server'da çıkışı beklendiği gibi biçimlendirmek için kullanabilirsiniz FOR JSON .

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;

Bu sorgunun çıktısı, OData belirtimi ile tamamen uyumlu JSON metnidir. Biçimlendirme ve kaçış SQL Server tarafından işlenir. SQL Server, sorgu sonuçlarını OData JSON veya GeoJSON gibi herhangi bir biçimde de biçimlendirebilir.

Yerleşik JSON desteğini AdventureWorks örnek veritabanı ile test edin.

AdventureWorks örnek veritabanını almak için GitHub'dan en azından veritabanı dosyasını ve örnek ve betik dosyasını indirin.

Örnek veritabanını bir SQL Server örneğine geri yükledikten sonra, örnekler dosyasını ayıklayın ve sonra dosyayı JSON klasöründen açın JSON Sample Queries procedures views and indexes.sql . Mevcut bazı verileri JSON verileri olarak yeniden biçimlendirmek, JSON verileri üzerinde örnek sorguları ve raporları test etmek, JSON verilerini dizine almak ve JSON'u içeri ve dışarı aktarmak için bu dosyadaki betikleri çalıştırın.

Dosyaya dahil edilen betiklerle şunları yapabilirsiniz:

  1. Mevcut şemayı denormalize edin ve JSON verilerinin sütunlarını oluşturun.

    • Satış siparişiyle ilgili bilgileri içeren SalesReasons, SalesOrderDetails, SalesPerson, Customer ve diğer tablolardaki bilgileri, SalesOrder_json tablosundaki JSON sütunlarına depolayın.

    • EmailAddresses ve PersonPhone tablolarındaki bilgileri Person_json tablosuna JSON nesneleri dizileri olarak depolayın.

  2. JSON verilerini sorgulayan yordamlar ve görünümler oluşturun.

  3. JSON verilerini dizine ekleme. JSON özelliklerinde ve tam metin dizinlerinde dizinler oluşturun.

  4. JSON'ı içeri ve dışarı aktarma. Person ve SalesOrder tablolarının içeriğini JSON sonuçları olarak dışarı aktaran yordamlar oluşturun ve çalıştırın, ardından JSON girişini kullanarak Person ve SalesOrder tablolarını içeri aktarıp güncelleyin.

  5. Sorgu örneklerini çalıştırın. 2. ve 4. adımlarda oluşturduğunuz saklı yordamları ve görünümleri çağıran bazı sorguları çalıştırın.

  6. Betikleri temizleyin. 2. ve 4. adımlarda oluşturduğunuz saklı yordamları ve görünümleri korumak istiyorsanız bu bölümü çalıştırmayın.