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 2025 (17.x)
Microsoft Fabric'teAzure SQL Veritabanı
Azure SQL Yönetilen Örneği
SQL veritabanı önizlemesi
JSON belgelerini yerel ikili biçimde depolayan yerel json veri türü.
json türü, kolay sorgulama ve işleme için en iyi duruma getirilmiş JSON belgelerinin yüksek uygunlukta depolanmasını sağlar ve JSON verilerini varchar veya nvarchardepolamaya 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
json türü UTF-8 kodlamasını kullanarak verileri dahili olarak depolar Latin1_General_100_BIN2_UTF8
. Bu davranış JSON belirtimi ile eşleşir.
JSON verilerini sorgulama hakkında daha fazla bilgi için bkz. SQL ServerJSON verilerini
Örnek söz dizimi
json türünün kullanım söz dizimi, tablodaki diğer tüm SQL Server veri türlerine benzer.
column_name JSON [NOT NULL | NULL] [CHECK(constraint_expression)] [DEFAULT(default_expression)]
json türü, CREATE TABLE
deyiminde yer alan sütun tanımında kullanılabilir, örneğin:
CREATE TABLE Orders (order_id int, order_details JSON NOT NULL);
Kısıtlamalar sütun tanımının bir parçası olarak belirtilebilir, örneğin:
CREATE TABLE Orders (order_id int, order_details JSON NOT NULL
CHECK (JSON_PATH_EXISTS(order_details, '$.basket') = 1)
);
Özellik kullanılabilirliği
JSON işlevi desteği ilk olarak SQL Server 2016'da (13.x) kullanıma sunulmuştur. Yerel json türü 2024'te Azure SQL Veritabanı ve Azure SQL Yönetilen Örneği'nde kullanıma sunulmuştur.
json tüm veritabanı uyumluluk düzeylerinde kullanılabilir.
Not
- genellikle Her Zaman-up-to-tarih güncelleştirme ilkesiyle yapılandırılmış Azure SQL Veritabanı ve Azure SQL Yönetilen Örneği için kullanılabilir.
- , SQL Server 2025 (17.x) Önizlemesi için önizleme aşamasındadır.
modify yöntemi
Not
modify
yöntemi şu anda önizleme aşamasındadır ve yalnızca SQL Server 2025 (17.x) Önizleme sürümünde kullanılabilir.
Yerel json türü yöntemini destekler modify
. Bir sütunda depolanan JSON belgelerini değiştirmek için kullanın modify
. yöntemi, modify
mümkün olduğunda verilerde yerinde değişiklikler yapmak için iyileştirmelere sahiptir ve JSON türündeki bir sütunda JSON belgesini değiştirmenin tercih edilen yoludur.
JSON dizeleri için, yeni değer mevcut değerden küçük veya buna eşitse yerinde değişiklik yapılabilir.
JSON numaraları için, yeni değer aynı türdeyse veya mevcut değerin aralığındaysa yerinde değişiklik yapılabilir.
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;
İşlev desteği
Tüm JSON işlevleri kod değişikliği veya kullanım farkı gerekmeyecek şekilde json türünü destekler.
-
OPENJSON
şu anda bazı platformlarda json veri türünü desteklememektedir. Daha fazla bilgi için bkz . Sınırlamalar.
JSON işlevlerinin tam listesi için bkz.
Dizin
JSON verileri için özel dizin türü yoktur.
json türü, CREATE INDEX
deyiminde anahtar sütunu olarak kullanılamaz. Ancak, bir json sütunu dizin tanımına eklenmiş bir sütun olarak belirtilebilir. Ayrıca, filtrelenmiş dizinin yan tümcesinde WHERE
sütunu görüntülenebilir.
Dönüşüm
CAST
türünden CONVERT
veya kullanarak açık dönüştürme, char, nchar, varcharve nvarchar türlerine yapılabilir. xml
json türü, sql_variant türüyle kullanılamaz veya sql_variant bir değişkene veya sütuna atanamaz. Bu kısıtlama, varchar(max), varbinary(max), nvarchar(max), xmlve CLR tabanlı veri türlerine benzer.
varchar(max) sütunu gibi mevcut sütunları kullanarak ALTER TABLE
dönüştürebilirsiniz.
xml veri türüne benzer şekilde, json sütununu ALTER TABLE
kullanarak dize veya ikili türlerden herhangi birine dönüştüremezsiniz.
Daha fazla bilgi için bkz. Veri türü dönüştürme.
Uyumluluk
json türü, kullanıcı tanımlı bir işlevde veya saklı yordamın parametresinde parametre veya dönüş türü olarak kullanılabilir. json türü tetikleyiciler ve görünümlerle uyumludur.
Şu anda bcp aracının yerel biçimi, varchar veya nvarcharolarak json belgesini içerir. json veri türü sütunu belirlemek için bir biçim dosyası belirtmeniz gerekir.
CREATE TYPE
türü için kullanılarak diğer ad türü oluşturulmasına izin verilmez. Bu, xml türüyle aynı davranıştır.
JSON türüyle SELECT ... INTO
kullanılması, JSON türüne sahip bir tablo oluşturur.
Sınırlama
- davranışı
CAST ( ... AS JSON)
bir json türü döndürür, ancak sp_describe_first_result_set sistem saklı yordamı json veri türünü doğru şekilde döndürmez. Bu nedenle, birçok veri erişim istemcisi ve sürücüsü varchar veya nvarchar veri türünü görür.- Şu anda TDS >= 7,4 (UTF-8 ile), ile
Latin_General_100_bin2_utf8
görür. - TDS
7.4 şu anda veritabanı harmanlaması ile nvarchar(max) görüyor.
- Şu anda TDS >= 7,4 (UTF-8 ile), ile
-
OPENJSON()
Şu anda işlev bazı platformlarda json türünü kabul etmez. Şu anda örtük bir dönüştürmedir. İlk olarak açıkça nvarchar(max) dönüştürün.- SQL Server 2025'te (Önizleme),
OPENJSON()
işlev json türünü destekler. Daha fazla bilgi için bkz. SQL Server 2025'te önemli JSON özellikleri.
- SQL Server 2025'te (Önizleme),
İlgili içerik
- JSON belgelerini depolama
- SQL Server'da JSON verilerini