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 Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analitik Platform Sistemi (PDW)
Microsoft Fabric'te SQL veritabanı
Transact-SQL deyimlerini kullanan veritabanları ve veritabanı uygulamaları, aşağıdaki yönergelere uyulduğunda bir dilden diğerine daha fazla taşınabilir hale gelir veya birden çok dili destekler:
SQL Server 2019 (15.x) ile başlayarak ve Azure SQL Veritabanı'nda şunlardan birini kullanın:
- UTF-8 etkin harmanlama özelliğine sahip char, varchar ve varchar(max) veri türleri UTF-8 kullanılarak kodlanır.
- Nchar, nvarchar ve nvarchar(max) veri türleri, tamamlayıcı karakter (SC) etkinleştirilmiş harmanlama ile kullanılır ve veriler UTF-16 kullanılarak kodlanır. SC olmayan bir harmanlama kullanıldığında veriler UCS-2 kullanılarak kodlanır.
Bu, kod sayfası dönüştürme sorunlarını önler. Diğer konular için bkz. UTF-8 ile UTF-16 arasındaki depolama farklılıkları.
SQL Server 2017'ye (14.x) kadar, char, varchar ve varchar(max) veri türlerinin tüm kullanımlarını nchar, nvarchar ve nvarchar(max)ile değiştirin. Tamamlayıcı karakter (SC) etkin harmanlama kullanılıyorsa veriler UTF-16 kullanılarak kodlanır. SC olmayan bir harmanlama kullanıldığında veriler UCS-2 kullanılarak kodlanır. Bu, kod sayfası dönüştürme sorunlarını önler. Daha fazla bilgi için bkz. Harmanlama ve Unicode Desteği.
Önemli
Metin veri türü kullanım dışıdır ve yeni geliştirme çalışmalarında kullanılmamalıdır. Metin verilerini varchar(max)'e dönüştürmeyi planlayın.
Ay ve haftanın günü karşılaştırmaları ve işlemleri yaparken, ad dizeleri yerine sayısal tarih bölümlerini kullanın. Farklı dil ayarları aylar ve hafta içi için farklı adlar döndürür. Örneğin,
DATENAME(MONTH,GETDATE())dil ABD İngilizcesi olarak ayarlandığında döndürürMay, dil Almanca olarak ayarlandığında döndürürMaive dil Fransızca olarak ayarlandığında döndürürmai. Bunun yerine, ad yerine ay sayısını kullanan DATEPART gibi bir işlev kullanın. Tarih adları genellikle sayısal gösterimden daha anlamlı olduğundan, kullanıcıya görüntülenecek sonuç kümeleri oluştururken DATEPART adlarını kullanın. Ancak, görüntülenen adların belirli bir dilden olmasına bağlı herhangi bir mantığı kodlamayın.Karşılaştırmalarda veya INSERT veya UPDATE deyimlerine giriş için tarihler belirttiğinizde, tüm dil ayarları için aynı şekilde yorumlanan sabitleri kullanın:
ADO, OLE DB ve ODBC uygulamaları, ODBC zaman damgası, tarih ve saat kaçış dizilerini kullanmalıdır.
{ ts'yyyy-mm-ddhh:mm:ss [.fff] '} örneğin: { ts'1998-09-24 10:02:20'}
{ d'yyyy-mm-dd'} örneğin: { d'1998-09-24'}
{ t'hh:mm:ss'} örneğin: { t'10:02:20'}
Diğer API'leri veya Transact-SQL betikleri, saklı yordamları ve tetikleyicileri kullanan uygulamalar ayrılmamış sayısal dizeleri kullanmalıdır. Örneğin, yyyymmdd olarak 19980924.
Diğer API'leri veya Transact-SQL betikleri, saklı yordamları ve tetikleyicileri kullanan uygulamalar, CONVERT deyimini time, date, smalldate, datetime, datetime2 ve datetimeoffset veri türleri ile karakter dizesi veri türleri arasındaki tüm dönüştürmeler için açık bir stil parametresiyle kullanmalıdır. Örneğin, aşağıdaki deyim tüm dil veya tarih biçimi bağlantı ayarları için aynı şekilde yorumlanır:
SELECT * FROM AdventureWorks2022.Sales.SalesOrderHeader WHERE OrderDate = CONVERT(DATETIME, '20060719', 101)
Ayrıca bakınız
CAST ve CONVERT (Transact-SQL)
DATEPART (Transact-SQL)
Harmanlama ve Unicode Desteği