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
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Azure Synapse Analytics
Analiz Platformu Sistemi (PDW)
Microsoft Fabric'teki SQL analiz uç noktası
Microsoft Fabric'teki ambar
Microsoft Fabric'teki SQL veritabanı
Atama başarılı olursa belirtilen veri türüne bir değer ataması döndürür; aksi takdirde null döndürür.
Transact-SQL söz dizimi kuralları
Sözdizimi
TRY_CAST ( expression AS data_type [ ( length ) ] )
Arguments
expression
Yayınlanacak geçerli ifadeleri belirtir.
data_type
İfadenin atandığı veri türü. Bu değer, kabul edilebilir değer aralığını belirler.
length
Hedef veri türünün uzunluğunu belirten isteğe bağlı tamsayı.
Dönüş türleri
Atama başarılı olursa belirtilen veri türüne bir değer ataması döndürür; aksi takdirde null döndürür.
Açıklamalar
TRY_CAST geçirilen değeri alır ve belirtilen data_type dönüştürmeye çalışır. Atama başarılı olursa değeri TRY_CAST belirtilen data_type döndürür; hata oluşursa null döndürülür. Ancak açıkça izin verilmeyen bir dönüştürme isteğinde bulunursanız hatayla TRY_CAST başarısız olur.
TRY_CAST yeni bir ayrılmış anahtar sözcük değildir ve tüm uyumluluk düzeylerinde kullanılabilir.
TRY_CAST uzak sunuculara bağlanırken kullanılan semantiğin TRY_CONVERT aynısına sahiptir.
TRY_CAST aşağıdaki durumlarda bir ifade için çalışmaz:
- uzunluk 8.000'in üzerindeyse varchar(max)
- Uzunluk 4.000'in üzerindeyse nvarchar(max)
Örnekler
A. TRY_CAST NULL döndürür
Aşağıdaki örnekte, atama başarısız olduğunda null değerinin döndürüldüğü
TRY_CASTgösterilmiştir.SELECT CASE WHEN TRY_CAST('test' AS FLOAT) IS NULL THEN 'Cast failed' ELSE 'Cast succeeded' END AS Result; GOBu sorgu sonucunu döndürür.
Cast failedAşağıdaki örnek, ifadenin beklenen biçimde olması gerektiğini gösterir.
SET DATEFORMAT dmy; SELECT TRY_CAST('12/31/2022' AS DATETIME2) AS Result; GOBu sorgu sonucunu döndürür.
NULL
B. TRY_CAST hatayla başarısız oluyor
Aşağıdaki örnek, atamaya açıkça izin verilmediğinde hata döndürdüğünü TRY_CAST gösterir.
SELECT TRY_CAST(4 AS XML) AS Result;
GO
Bu ifadenin sonucu bir hatadır, çünkü bir tamsayı xml veri tipine dökülemez.
Explicit conversion from data type int to xml is not allowed.
C. TRY_CAST başarılı
Bu örnek, ifadenin beklenen biçimde olması gerektiğini gösterir.
SET DATEFORMAT mdy;
SELECT TRY_CAST('12/31/2022' AS DATETIME2) AS Result;
GO
Bu sorgu sonucunu döndürür.2022-12-31 00:00:00.0000000