Aracılığıyla paylaş


HARMANLAMA (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiMicrosoft Fabric'de Azure Synapse AnalyticsAnalytics Platform Sistemi (PDW)Ambarı

Bir veritabanı veya tablo sütununun harmanlamasını ya da karakter dizesi ifadesine uygulandığında harmanlama atama işlemini tanımlar. Harmanlama adı bir Windows harmanlama adı veya SQL harmanlama adı olabilir. Veritabanı oluşturma sırasında belirtilmezse, veritabanına SQL Server örneğinin varsayılan harmanlaması atanır. Tablo sütunu oluşturma sırasında belirtilmezse, sütuna veritabanının varsayılan harmanlaması atanır.

Transact-SQL söz dizimi kuralları

Sözdizimi

COLLATE { <collation_name> | database_default }
<collation_name> ::=
    { Windows_collation_name } | { SQL_collation_name }

Bağımsız değişken

collation_name İfadeye, sütun tanımına veya veritabanı tanımına uygulanacak harmanlamanın adıdır. collation_name yalnızca belirtilen bir Windows_collation_name veya SQL_collation_nameolabilir. collation_name değişmez değer olmalıdır. collation_name bir değişken veya ifadeyle temsil edilemez.

Windows_collation_name, Windows Harmanlama Adıiçin harmanlama adıdır.

SQL_collation_name, SQL Server Harmanlama Adıiçin harmanlama adıdır.

Not

Microsoft Fabric'te, izin verilen tek harmanlama: Latin1_General_100_BIN2_UTF8.

database_default COLLATE yan tümcesinin geçerli veritabanının harmanlamasını devralmalarına neden olur.

Açıklamalar

COLLATE yan tümcesi çeşitli düzeylerde belirtilebilir. Bunlar şunları içerir:

  1. Veritabanı oluşturma veya değiştirme.

    veritabanının varsayılan harmanlamasını belirtmek için CREATE DATABASE veya ALTER DATABASE deyiminin COLLATE yan tümcesini kullanabilirsiniz. SQL Server Management Studio kullanarak veritabanı oluştururken harmanlama da belirtebilirsiniz. Harmanlama belirtmezseniz, veritabanına SQL Server örneğinin varsayılan harmanlaması atanır.

    Not

    Windows Yalnızca Unicode harmanlamaları yalnızca sütun düzeyinde ve ifade düzeyindeki verilerde nchar, nvarcharve ntext veri türlerine harmanlama uygulamak için COLLATE yan tümcesiyle kullanılabilir; bunlar, bir veritabanı veya sunucu örneğinin harmanlamasını tanımlamak veya değiştirmek için COLLATE yan tümcesiyle kullanılamaz.

  2. Tablo sütunu oluşturma veya değiştirme.

    CREATE TABLE veya ALTER TABLE deyiminin COLLATE yan tümcesini kullanarak her karakter dizesi sütunu için harmanlamalar belirtebilirsiniz. SQL Server Management Studio kullanarak tablo oluştururken harmanlama da belirtebilirsiniz. Harmanlama belirtmezseniz, sütuna veritabanının varsayılan harmanlaması atanır.

    Geçici tablodaki bir sütunun bağlantı için tempdbyerine geçerli kullanıcı veritabanının harmanlama varsayılanını kullanmasını belirtmek için COLLATE yan tümcesindeki database_default seçeneğini de kullanabilirsiniz.

  3. bir ifadenin harmanlamasını atama.

    Belirli bir harmanlama için karakter ifadesi uygulamak için COLLATE yan tümcesini kullanabilirsiniz. Karakter değişmez değerlerine ve değişkenlere geçerli veritabanının varsayılan harmanlaması atanır. Sütun başvuruları, sütunun tanım harmanlaması atanır.

Tanımlayıcının harmanlanması, tanımlandığı düzeye bağlıdır. Oturum açma bilgileri ve veritabanı adları gibi örnek düzeyindeki nesnelerin tanımlayıcılarına, örneğin varsayılan harmanlaması atanır. Veritabanı içindeki tablolar, görünümler ve sütun adları gibi nesnelerin tanımlayıcılarına veritabanının varsayılan harmanlaması atanır. Örneğin, yalnızca büyük/küçük harfe duyarlı harmanlama içeren bir veritabanında farklı adlara sahip iki tablo oluşturulabilir, ancak büyük/küçük harfe duyarlı olmayan harmanlama içeren bir veritabanında oluşturulamayabilir. Daha fazla bilgi için bkz. Veritabanı Tanımlayıcıları.

Değişkenler, GOTO etiketleri, geçici saklı yordamlar ve geçici tablolar, bağlantı bağlamı bir veritabanıyla ilişkilendirildiğinde ve bağlam başka bir veritabanına geçirildiğinde başvurulduğunda oluşturulabilir. Değişkenler, GOTO etiketleri, geçici saklı yordamlar ve geçici tablolar için tanımlayıcılar, sunucu örneğinin varsayılan harmanlamasındadır.

COLLATE yan tümcesi yalnızca char, varchar, metin, nchar, nvarcharve ntext veri türleri için uygulanabilir.

COLLATE, ifadeye, sütun tanımına veya veritabanı tanımına uygulanacak SQL Server harmanlamasının veya Windows harmanlamasının adına başvurmak için collate_name kullanır. collation_name yalnızca belirtilen bir Windows_collation_name veya SQL_collation_name olabilir ve parametresi değişmez değer içermelidir. collation_name bir değişken veya ifadeyle temsil edilemez.

Harmanlamalar genellikle, Kurulum dışında bir harmanlama adıyla tanımlanır. Kurulum'da, bunun yerine Windows harmanlamaları için kök harmanlama belirticisini (harmanlama yerel ayarı) ve ardından büyük/küçük harfe veya vurgulara duyarlı veya duyarsız sıralama seçeneklerini belirtirsiniz.

Windows harmanlamaları ve SQL Server harmanlamaları için tüm geçerli harmanlama adlarının listesini almak için sistem işlevi fn_helpcollations yürütebilirsiniz:

SELECT name, description
FROM fn_helpcollations();

SQL Server yalnızca temel işletim sistemi tarafından desteklenen kod sayfalarını destekleyebilir. Harmanlamalara bağlı bir eylem gerçekleştirdiğinizde, başvuruda bulunulmuş nesne tarafından kullanılan SQL Server harmanlaması, bilgisayarda çalışan işletim sistemi tarafından desteklenen bir kod sayfası kullanmalıdır. Bu eylemler şunları içerebilir:

  • Veritabanını oluştururken veya değiştirirken veritabanı için varsayılan harmanlama belirtme.
  • Tablo oluştururken veya değiştirirken sütun için harmanlama belirtme.
  • Veritabanını geri yüklerken veya eklerken, veritabanının varsayılan harmanlaması ve karakterharmanlaması, varcharve veritabanındaki sütun veya parametreler metin işletim sistemi tarafından desteklenmelidir.

Not

Kod sayfası çevirileri karakter ve varchar veri türleri için desteklenir, ancak metin veri türü için desteklenmez. Kod sayfası çevirileri sırasında veri kaybı bildirilir.

Belirtilen harmanlama veya başvuruda bulunulmuş nesne tarafından kullanılan harmanlama Windows tarafından desteklenmeyen bir kod sayfası kullanıyorsa, SQL Server bir hata görüntüler.

Örnekler

A. SELECT sırasında harmanlamayı belirtme

Aşağıdaki örnek basit bir tablo oluşturur ve 4 satır ekler. Ardından örnek, tablodan veri seçerken iki harmanlama uygulayarak Chiapas nasıl farklı sıralanacağını gösterir.

CREATE TABLE Locations
(Place varchar(15) NOT NULL);
GO
INSERT Locations(Place) VALUES ('Chiapas'),('Colima')
                             , ('Cinco Rios'), ('California');
GO
--Apply a typical collation
SELECT Place FROM Locations
ORDER BY Place
COLLATE Latin1_General_CS_AS_KS_WS ASC;
GO
-- Apply a Spanish collation
SELECT Place FROM Locations
ORDER BY Place
COLLATE Traditional_Spanish_ci_ai ASC;
GO
-- Using LIKE
SELECT Place FROM Locations
WHERE Place COLLATE Latin1_General_CI_AS LIKE 'C%' ASC; 
GO

İlk SELECT sorgusunun sonuçları aşağıdadır.

Place
-------------
California
Chiapas
Cinco Rios
Colima

İkinci SELECt sorgusunun sonuçları aşağıdadır.

Place
-------------
California
Cinco Rios
Colima
Chiapas

Üçüncü SELECt sorgusunun sonuçları aşağıdadır.

Place
-------------
Chiapas
Colima
Cinco Rios
California

B. Ek örnekler

COLLATEkullanan ek örnekler için bkz. CREATE DATABASE örneği G. Veritabanı oluşturma ve harmanlama adı ve seçenekleribelirtme ve V ALTER TABLE örneği. Sütun harmanlamasını değiştirme. .