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.Unicode olmayan karakter verileri içeren sütunlar veri ancak, kaynak kod sayfasından hedef kod sayfa dönüştürülmesi gerekir.Akod sayfa olan bir sıralı küme karakter, bir sayısal dizin veya kod noktası değeri ilişkili belirli bir komut dosyasının her karakterin.Karakter kümelerine ve klavye düzeni farklı tarafından kullanılan kod sayfalarını desteklerMicrosoftWindows yerel ayarları.Desteklenen kod sayfalarının listesi için bkz:Kod sayfa mimarisi.

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

Operation:

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

Ver

OEM kod sayfa karakterlerini

Al

ANSI/Microsoft Office 2010 Suite Windows kod sayfa karakterlerini

OEM ve ANSI kod sayfaları arasında dönüştürme genişletilmiş ister çift baytlık karakter kümesi (DBCS) karakterleri kaybına neden olur.Bu dönüşümler önlemek içinSQL Serverbir kod sayfa veya belirtebilirsiniz bir harmanlama.

Not

Bir veritabanından başka bir alfabe düzeni için bir harmanlama aktarma hakkında bilgi için bu bakınMicrosoft Office 2010 Suite Web sitesi.

InSQL Server7.0 ve sonraki sürümlerinde, karakter dizeleri, fiziksel depolama alanı alanı alanı alfabe. denetlenirAlfabe düzenlerini ayarlama dört düzeyde desteklenir: sunucu örnek, veritabanı, tablo sütun ve bir ifade. Bir harmanlama üç özellik belirtir.

  • Kod sayfa kullanılan saklamak Unicode olmayan karakter.

  • Unicode veri türleri için kullanılacak sıralama düzeni ( ncharnvarchar , ntext ). Bir sıralama düzeni, karşılaştırma işlemleri karakterler 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

Microsoft, her sütun için bir harmanlama adı belirtmeniz önerir birbiçim dosyası.

Kod sayfaları ve alfabe, bkz: giriş içinharmanlama ve Unicode desteği.Ayrıntılı bilgi için bkz:Harmanlamalar ile çalışma.

Sütun düzey kullanarak harmanlama

InSQL Server7.0 ve sonrası alanında toplu verme ya da hedef sütun için hedef veri dosyasının verileri, saklanır harmanlama belirterek veri dönüştürme denetleyebilirsiniz tablo, bir toplu alma işleminin.Tüm gerekli veri dosya karşılaştırma, alfabe arasındaki çevirileri tablo veritabanındaki sütunları alma tarafından dahili olarak gerçekleştirilen veya verme işlemini.

Not

İçinSQL Server7.0 ve sonraki sürümünü belirten bir kod sayfa destekleniyor, ancak, harmanlama belirtin tercih edilir bir biçim dosyası.

Alfabe toplu alma hem de toplu verme işlemleri SQLCHAR sütunlar her zaman uygulanır.Sütun harmanlama özellikleri her zaman SQLCHAR veya SQLNCHAR belirtilen ana bilgisayar veri türlerine sahip sütunlarda yoksayılır.Alfabe sütunlara ORDER İpucu başvurulur toplu alma işlemleri sırasında SQLCHAR hem de SQLNCHAR sütun için sıralama düzeni düzenini belirlemek için kullanılır.

harmanlama belirtmek için bir biçim dosyası kullanmanız gerekir.Her iki dosya türü belirtme sütun - desteği düzey alfabe.Alfabe dışı XML biçimi dosyaları kullanma hakkında daha fazla bilgi için sütun düzey harmanlamalar belirtme olmayan XML biçimi dosyaları, aşağıdaki bölümüne bakın.Alfabe, XML biçimi dosyaları kullanma hakkında bilgi için bkz:XML biçimi dosyaları anlama.

Sütun düzeyinde harmanlamalar olmayan XML biçimi dosyaları belirleme

Son sütunda olmayan-XML 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 belirtimini içerir.Sütun harmanlama seçenekleri aşağıdaki gibidir:

Seçenek

Açıklama

name

Adını belirtir harmanlama veri dosyasındaki verileri depolamak için kullanılır.SQL Harmanlaması adlarının listesi için bkz:Name (Transact-SQL) SQL Server harmanlama.

HAM

Specifies that the data is stored in the code page that is specified in a code-page option in the command or the bcp_control BCPFILECP hint.Bunların hiçbiri belirtilmezse, veri dosyasının harmanlama OEM kod sayfa istemci bilgisayarın olmasıdır.

NoteNote:
Kod sayfa seçenekleri hakkında daha fazla bilgi için bu konuda daha sonra "Kullanarak bir kod sayfa," bakın.Daha fazla bilgi için bkz: ilgili BCPFILECP ipucu için bkz:bcp_control.

""

RAW olarak aynı anlamı yoktur.

Örnekler

Aşağıdaki örnek, non-XML gösterir biçim dosyası ile belirtilen alanlar için 2 ve 3 sütun alfabe.Harmanlama bilgilerini kalın olarak 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çimi dosyanınHumanResources.Department tablosunda AdventureWorks, örnek veritabanı dört sütun vardır: DepartmentID, Name, GroupName, and ModifiedDate.Tablo hakkında daha fazla bilgi için bkz:Departman tablo (AdventureWorks).

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

Kullanarak bir kod sayfa

Not

Çevrilmesi, denetlemeMicrosoft, sütun - belirtmek için bir biçim dosyası kullanmanızı önerir düzey alfabe düzenleri için bir toplu verme veya toplu olarak alma işlemiDaha fazla bilgi için bkz. "Sütun düzeyinde harmanlama kullanarak"bölümüne.

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

  • Bir kod sayfa belirlemek için birKullanımıbcp komut, - C anahtarını kullanın:

    -C {ACP | OEM | RAW | code_page}

  • BULK INSERT veya INSERT içine bir kod sayfa belirlemek için...SELECT * deyim OPENROWSET(BULK...), CODEPAGE seçeneğini kullanın:

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

İki-C aşağıdaki değerleri için kod sayfa. anahtarı ve CODEPAGE seçeneği kabul

Kod sayfa değerini

Açıklama

ACP

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

Bir verme işlemi sırasında belirtirKullanımıbcp Bu sütunu SQL Serverkod sayfa ANSI/Windows kod sayfa. dönüştürür

OEM (varsayılan)

Alma işlemi sırasında bu verileri belirtir, alanlarıkarakter, varchar veya metin veri türü, sistem OEM kod sayfa dönüştürülür SQL Serverkod sayfa.

Bir verme işlemi sırasında belirtirKullanımıbcp Bu sütunu SQL Serverkod sayfa OEM kod sayfa. dönüştürür

HAM

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

code_page

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

Örnekler

Aşağıdaki örnekleri kullanınHumanResources.myTeam tablo AdventureWorksveritabanı.Örnekleri çalıştırmak için önce bu tablo oluşturmanız gerekir.Tablo ve onu oluşturma hakkında bilgi için bkz:HumanResources.myTeam tablo oluşturma.

Not

Önce sınama aşağıdaki örnek, varolan satırlarını silmelisinizmyTeam tablonun birincil anahtar çakışmaları önlemek için.

C.Kod sayfa Kullanımıbcp ile kullanma

Bu örnek kullanırKullanımıbcp için toplu vermek verileri HumanResources.myTeamTablo, AdventureWorksiçin veritabanı myTeam850.txtveri dosya, kod sayfa kullanmak 850.Windows komut istemi satırına girin:

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

B.BULK INSERT ile kod sayfasını kullanma

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

Sorgu aracından gibiSQL Server Management StudioSorgusu Düzenleyicisi'ni yürütmek:

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

Toplu farklı harmanlamalar arasında veri verme

harmanlama belirtimi, toplu verme işleminde, karakter verisi veri dosyasında saklamak için kullanılan kod sayfa denetler.İçin geçerlidir:

  • Tüm sütunlar karakter biçiminde veri dosyası.

  • Yerel mod dosyasına SQLCHAR ana dosya veri türü olarak burada belirtilen herhangi bir sütun.

  • 127 Veya 32'den daha büyük değerler, SQLCHAR karakter.

    Alfabe karakterleri değerleri olan 32-127, uygulanır, ancak tüm kod sayfaları, 127, böylece farklı alfabe uygulama var. hiçbir etkisi 32 değerleri aynı olan karakterleri eşleştirme

Bir toplu vermek işleminde hangi harmanlama veya kod sayfa kullanılır belirleyen kurallar aşağıdaki gibidir:

  • sütun harmanlama belirtilen bir biçim dosyası veya ODBC kullanarakbcp_setcolfmt işlev ( bcp_setcolfmt), karakter verisi harmanlama. ile ilişkili ANSI kod sayfa kullanılarak saklanan

  • Bir sütunun harmanlama belirtilmemiş, ancak komutunda bir kod sayfa seçeneğiyle kod sayfa belirtilmedi veyabcp_controlBelirtilen kod sayfa kullanılarak BCPFILECP ipucu, tüm sütunların sütun harmanlama belirtim sahip SQLCHAR veriler depolanır.

    Not

    Kod sayfa seçenekleri hakkında daha fazla bilgi için bu konuda daha önce "Kullanarak bir kod sayfa," bakın.Daha fazla bilgi için bkz: ilgili BCPFILECP ipucu için bkz:bcp_control.

  • Bir harmanlama ya da bir kod sayfasý belirtmeniz durumunda, SQLCHAR veriler istemci bilgisayarın OEM kod sayfa kullanılarak depolanır.

Not

Harmanlama/kod sayfa hakkında bilgi yok, bir veri dosyasında saklanır.

Toplu farklı harmanlamalar arasında veri alma

Toplu alma işlemi için kod sayfa yorumu karakter biçimi, SQLCHAR, verileri bir veri dosyasında depolanmış sütunlara uygulanır.Karakter biçiminde veri dosyasında, tüm sütunları SQLCHAR saklanır.Harmanlama/kod sayfa hakkında bilgi yok, bir toplu alma işlemi için bir veri dosyası depolandığı için veri alanları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:

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

  • sütun harmanlama belirtilmemiş, ancak komut kod sayfa seçeneğiyle belirtilen kod sayfa veyabcp_control Belirtilen kod sayfa. kullanarak BCPFILECP ipucu, SQLCHAR verileri yorumlama

    Not

    Kod sayfa seçenekleri hakkında daha fazla bilgi için bu konuda daha önce bir kod sayfasını kullanma konusuna bakın.Daha fazla bilgi için bkz: ilgili BCPFILECP ipucu için bkz:bcp_control.

  • Sonra bir alfabe veya bir kod sayfasý belirtmeniz durumunda, 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ütun veri dosyasındaki kod sayfa yorumlamaya çalışır.

  • NasılKullanımıbcp veya BULK INSERT uygular, ORDER İpucu belirtilmişse.

    ORDER İpucu kullanıyorsanız, toplu alma işlemini alfabe ORDER İpucu düzgün için kullanır.Bu İpucu SQLCHAR hem SQLNCHAR sütunlar için geçerlidir.ORDER İpucu tarafından başvurulan sütunlardaki veriler bu sütunlar için eşleşen bir harmanlama tarafından tanımlanan sıra olması gerekir.Daha fazla bilgi için bkz:Toplu veri alma, sıralama düzeni düzenini denetleme.