Aracılığıyla paylaş


Farklı harmanlamalar arasında veri kopyalama

In Microsoft SQL Server data can be moved between Unicode columns seamlessly and conversion is unnecessary.Veri olmayan-Unicode karakter veri içeren sütunlar arasında ancak, kaynak kod sayfasından hedef kod sayfa dönüştürülmesi gerekir.A kod sayfa olan bir sıralı küme karakter sayısını, sayısal dizin veya kod noktası değeri, ilişkili olduğu verilen bir komut dosyasına her karakteri.Kod sayfası karakter kümelerini desteklemek ve klavye düzenleri farklı olarak kullanılan Microsoft Windows yerel ayarları.Desteklenen kod sayfalarının listesi için bkz: Kod sayfası mimarisi.

Varsayılan değer olarak, karakter verileri aşağıdaki biçimde dönüştürülür:

İşlem

Karakter veri dönüştürülür:

Ver

oem kod sayfa karakter

Al

ANSI/Microsoft Windows kod sayfa karakter

oem ve ANSI kod sayfaları arasında dönüştürme genişletilmiş veya çift baytlık karakter küme küme (dbcs) karakterleri kaybına neden olur.Bu tür dönüşümler önlemek için SQL Server, kod sayfa veya belirtebilirsinizharmanlama.

Not

Bu bir harmanlama için başka bir harmanlama veritabanı aktarma hakkında bilgi için bkz: Microsoft Web sitesi.

De SQL Server 7.0 ve sonraki sürümlerinde, karakter dizeleri, fiziksel depolama alanı alanı denetlenmektedir alfabe.Alfabe düzenlerini ayarlama dört düzeyde desteklenir: sunucu örnek, bir veritabanı, tablo sütunve bir ifade.Bir harmanlama üç özellik belirtir:

  • Unicode olmayan karakter verileri depolamak için kullanılan kod sayfa.

  • Sıralama düzeni Unicode veri türlerini kullanmak için (nchar, nvarchar, ve ntext).Bir sıralama düzeni içinde Karşılaştırma işlemlerinin karakter sıralanır ve yol karakterleri değerlendirilir sırayı tanımlar.

  • Unicode olmayan karakter veri türleri için kullanılacak sıralama düzeni (char, varchar, ve text).

Not

Microsofther sütun için bir harmanlama adı belirtmeniz önerir bir biçim dosyası.

Kod sayfaları ve alfabe düzenlerinden bir giriş için bkz: Harmanlama ve Unicode desteği.Ayrıntılı bilgi için Alfabe ile çalışma.

Sütun düzeyinde alfabe düzeni kullanma

De SQL Server 7.0 ve sonraki sürümleri, çevrilmesi, veriler depolanır bir yığın-verme, veya sütun hedef tablo için bir toplu alma işlemi için hedef veri dosyasının alan harmanlama belirterek denetleyebilirsinizTüm gerekli çevirileri arasında veri dosya harmanlama ve alfabe düzenlerinden birini tablo veritabanındaki sütunları alma tarafından dahili olarak gerçekleştirilen veya verme işlemi.

Not

İçin SQL Server 7.0 ve sonrası, kod sayfa desteklenir ancak bu tercih bir biçim dosyası harmanlama belirtmek için belirtme

Alfabe sqlchar sütunlar üzerinde hem toplu alma ve verme toplu işlemler için her zaman geçerlidir.Sütun harmanlama özellikleri sqlchar veya ana bilgisayar veri türü belirtilen sqlnchar sahip sütunlar için her zaman dikkate alınmaz.Alfabe, kendisi için sipariş ipucu sütunları başvurulan toplu alma işlemleri sırasında sqlchar hem sqlnchar sütun için sıralama düzeni düzenini belirlemek için kullanılır.

Alfabe düzeni belirtmek için kullanmanız gerekir bir biçim dosyası.Her iki biçimi dosya türlerini belirtme sütun - Destekdüzey alfabe.Olmayan xml biçimi dosyaları harmanlamalar kullanma hakkında bilgi için aşağıdaki bölümde, içinde olmayan xml biçimi dosyaları sütun düzeyinde alfabe düzenlerini belirtme konusuna bakın.xml biçimi dosyaları harmanlamalar kullanma hakkında daha fazla bilgi için bkz: xml biçimi dosyaları anlama.

Sütun düzeyinde alfabe olmayan xml biçimi dosyaları belirtme

Son sütun XML olmayan biçim dosyası (sıralı konumunu 8 sütun), o sütuna ilişkin verileri veri dosyasında nasıl depolandığını tanımlar bir harmanlama belirtimi içeriyor.Sütun harmanlama seçenekleri şunlardır:

Seçenek

Açıklama

name

Veri dosyasındaki verileri depolamak için kullanılan harmanlama adını belirtir.sql listesi için harmanlama Bkz: ad, sql Server harmanlama adı (Transact-sql).

HAM

Bir kod sayfa seçeneğinde komutta belirtilen kod sayfa verilerin saklandığını belirtir veya bcp_control BCPFILECP ipucu.Bunlardan hiçbiri belirtilmezse, harmanlama veri dosyasının oem kod sayfa istemci bilgisayarın olmasıdır.

NotNot
Kod sayfa seçenekleri hakkında daha fazla bilgi için bkz: "Bir kod sayfasını kullanarak" Bu konuda daha sonra.BCPFILECP ipucu hakkında daha fazla bilgi için bkz: Bkz: bcp_control.

""

raw olarak aynı anlamı yoktur.

Örnekler

Aşağıdaki örnek xml olmayan gösterir biçim dosyası ile belirtilen alanları için 2 ve 3 sütun alfabe.Harmanlama bilgisi kalın yazı tipinde görüntülenir.

9.0
4
1       SQLCHAR       0       7       "\t"     1     DepartmentID     ""
2       SQLCHAR       0       100     "\t"     2     Name             SQL_Latin1_General_CP1_CI_AS
3       SQLCHAR       0       100     "\t"     3     GroupName        SQL_Latin1_General_CP1_CI_AS
4       SQLCHAR       0       24      "\r\n"   4     ModifiedDate     ""

Not

Önceki biçim dosyası için HumanResources.Department , tablo AdventureWorks2008R2 dört sütun vardır örnek veritabanı: DepartmentID, ad, GrupAdı, ve ModifiedDate.

Olmayan xml biçimi dosyaları hakkında daha fazla bilgi için bkz: Olmayan xml biçimi dosyaları anlama.

Bir kod sayfası kullanılarak

Not

Çevrilmesi, kontrol etmek için Microsoft , sütun - belirtmek için bir biçim dosyası kullanmanızı önerirdüzey alfabe düzenlerinden bir toplu verme veya alma toplu işlem.Daha fazla bilgi için bkz. "Kullanarak sütun -düzey harmanlama, " önceki bölüm.

Bir kod sayfa belirlemek için sözdizimi aşağıdaki gibidir:

  • Bir kod sayfa belirlemek için bir bcp kullanmak, komut - c geçiş:

    -C { ACP | OEM | HAM | code_page }

  • Bir bulk INSERT veya INSERT ve kod sayfa belirlemek için...SEÇİN * OPENROWSET(BULK...) DAN deyim, codepage seçeneği kullanın:

    CODEPAGE = { 'ACP' | 'OEM' | 'RAW' | 'code_page' }

Her iki - c geçiş ve codepage seçeneği kod sayfa için aşağıdaki değerleri kabul eder.

Kod sayfası değerini

Açıklama

ACP

Verme işlemi sırasında bu verileri belirtir alanlarının char, varchar, veya metin veri türü dönüştürülür ANSI/Windows kod sayfasından (ISO 1252) SQL Server kod sayfa.

Verme işlemi sırasında belirleyen bir bcp bu sütunlardan dönüştürür SQL Server kod sayfa ANSI/Windows kod sayfa.

oem (varsayılan)

Verme işlemi sırasında bu verileri belirtir alanlarının char, varchar, veya metin sistem oem kod sayfa için veri türü dönüştürülür SQL Server kod sayfa.

Verme işlemi sırasında belirleyen bir bcp bu sütunlardan dönüştürür SQL Server kod sayfa için sistem oem kod sayfa.

HAM

Bir başka bir kod sayfa dönüştürme gerçekleşir.Bu en hızlı seçenektir.

code_page

Belirli bir kod sayfa numarası (örneğin, 850).Desteklenen kod sayfalarının listesi için bkz: Kod sayfası mimarisi.

Örnekler

Aşağıdaki örnekleri kullanın HumanResources.myTeam , tablo AdventureWorks2008R2 veritabanı.Örnekleri çalıştırmak için önce bu tablo oluşturmanız gerekir.Tablo ve bunu oluşturmak hakkında daha fazla bilgi için bkz: HumanResources.myTeam tablo oluşturma.

Not

Aşağıdaki örnek sınama önce varolan satırların silineceği myTeam tablo birincil anahtar çakışmalarını önlemek için.

A.Bir kod sayfası bcp ile kullanma

Bu örnek kullanır bcp toplu için verilerin dışa HumanResources.myTeam , tablo AdventureWorks2008R2 için veritabanı myTeam850.txt veri dosyasını kullanmak kod sayfa 850.Windows komut istemi istemine girin:

bcp AdventureWorks2008R2.HumanResources.myTeam out myTeam850.txt -c -C850 -T

B.Bir kod sayfası bulk INSERT ile kullanma

This example uses BULK INSERT to bulk import myTeam850.txt, created in the preceding bcp example, into the AdventureWorks2008R2 HumanResources.myTeam table.

Bir sorgu araç gibi SQL Server Management Studio yürütmek Query Editor:

USE AdventureWorks2008R2;
GO
DELETE HumanResources.myTeam;
GO
BULK INSERT HumanResources.myTeam 
   FROM 'C:\myTeam850.txt'
   WITH (CODEPAGE = 850);
GO

Toplu farklı harmanlamalar arasında veri verme

Toplu verme işleminde, harmanlama belirtimi veri dosyasındaki karakter verileri depolamak için kullanılan kod sayfa kontrol eder.İçin geçerlidir:

  • Karakter biçiminde veri dosyası tüm sütunlar.

  • Tüm sütun burada sqlchar belirtilen ana bilgisayar dosya veri türü olarak bir yerel mod dosyasına.

  • sqlchar karakter değerleri 127 veya küçüktür 32'den büyük.

    Alfabe karakterleri 32-127 değerleri olan uygulanır, ancak bu yüzden farklı alfabe düzenlerini uygulayarak etkisi tüm kod sayfaları aynı karakterler için değerleri 32, 127'den eşleme.

Bir toplu vermek işlemi hangi harmanlama veya kod sayfa kullanılır belirleyen kurallar şunlardır:

  • sütun harmanlama belirtilirse, ya da bir biçim dosyası veya odbc kullanarak bcp_setcolfmt işlev (bcp_setcolfmt), karakter veri harmanlama. ile ilişkili ANSI kod sayfa kullanılarak saklanan

  • Bir sütunun harmanlama belirtilmemiş, ancak komutta bir kod sayfa seçeneği tarafından belirtilen kod sayfa veya bcp_control BCPFILECP ipucu, tüm sqlchar veri sütunlarından sütun harmanlama belirtimi yok olması belirtilen kod sayfa kullanılarak depolanır.

    Not

    Kod sayfa seçenekleri hakkında daha fazla bilgi için bkz: "Bir kod sayfasını kullanarak" Bu konunun önceki kısımlarında.BCPFILECP ipucu hakkında daha fazla bilgi için bkz: Bkz: bcp_control.

  • Bir harmanlama veya kod sayfa belirtmezseniz sqlchar veriler istemci bilgisayarın oem kod sayfa kullanılarak depolanır.

Not

Hakkında hiçbir bilgi harmanlama/kod sayfa, veri dosyasında saklanır.

Toplu farklı harmanlamalar arasında veri alma

Bir toplu alma işlemi için kod sayfa yorumunu karakter biçimi, sqlchar, veri dosyasındaki verileri olarak depolanan sütunlar için geçerlidir.Karakter biçiminde veri dosyası içinde tüm sütunları sqlchar depolanır.Harmanlama/kod sayfa hakkında hiçbir bilgi bir toplu alma işlemi için bir veri dosyası depolandığı için veri alanlarının harmanlama/kod sayfa hakkında bilgi girmeniz gerekir.

Bir toplu alma işlemi hangi harmanlama veya kod sayfa kullanılır belirleyen kurallar şunlardır:

  • Bir sütunun harmanlama olarak belirtirseniz, bir biçim dosyası veya odbc kullanarak bcp_setcolfmt işlev (bcp_setcolfmt), sqlchar verileri bir veri dosyasında belirtilen sütun harmanlama. ile ilişkili ANSI kod sayfa kullanılarak yorumlanırHarmanlama belirtimlerinize alfabe veri dosyasındaki eşleştiğinden emin olun.

  • sütun harmanlama belirtilmemiş, ancak komutta kod sayfa seçeneğini kullanarak bir kod sayfa belirtilmedi veya bcp_control BCPFILECP ipucu, sqlchar verileri belirtilen kod sayfa kullanılarak yorumlandığını.

    Not

    Kod sayfa seçenekleri hakkında daha fazla bilgi için bkz: kod sayfa, bu konunun önceki kısımlarında kullanma.BCPFILECP ipucu hakkında daha fazla bilgi için bkz: Bkz: bcp_control.

  • Daha sonra herhangi bir alfabe veya kod sayfa belirtmezseniz sqlchar sütunlardaki veriler istemci bilgisayarın oem kod sayfa kullanılarak yorumlanır.

Bir toplu alma işlemi harmanlama belirtimi aşağıdakileri denetler:

  • Nasıl işlem sqlchar sütunlar veri dosyasındaki kod sayfa yorumlamaya çalışır.

  • Nasıl bcp veya bulk INSERT geçerli sipariş ipucu belirtilmiş olması durumunda.

    Sipariş ipucu kullanıyorsanız, toplu alma işlemi düzgün sipariş ipucu yorumlamak için alfabe kullanır.Bu ipucu sqlchar hem sqlnchar sütunlar için geçerlidir.Sipariş ipucu tarafından başvurulan sütunlardaki veriler için bu sütunları eşlenen harmanlama tarafından tanımlanan sıra olması gerekir.Daha fazla bilgi için bkz: Toplu olduğunda veri alma, sıralama düzenini denetleme.