Alan ve satır sonlandırıcılar belirtme

Karakter veri alanları için isteğe bağlı Sonlandırıcı karakterler içeren bir veri dosyası her alanda sonunu işaretlemek izin bir alan ayırıcısı ve her satır sonunda bir satır Sonlandırıcı.Sonlandırıcı karakterler başladığı yeri başka bir alan veya satır sona erer ve bir alan veya satır veri dosyasını okumak için programları belirtmek için bir yoludur.

Önemli notÖnemli

Yerel veya Unicode yerel biçim kullandığınızda, alan Kesiciler yerine uzunluk öneklerinin kullanın.Native format data can conflict with terminators because a native-format data file is stored in the Microsoft SQL Server internal binary data format.

Sonlandırıcılar desteklenen karakter

The bcp command, BULK INSERT statement, and the OPENROWSET bulk rowset provider support a variety of characters as field or row terminators and always look for the first instance of each terminator.Aşağıdaki tablo Kesiciler için desteklenen karakterler listelenir.

Sonlandırıcı karakter

İle gösterilen

Sekmesi

\t

Bu varsayılan değer, alan ayırıcısı.

Yeni satır karakteri

\n

Varsayılan satır Sonlandırıcı budur.

Satır başı/satır besleme

\r

Ters eğik çizgi1

\\

Null Sonlandırıcı (nonvisible sonlandırıcı)2

\0

Herhangi bir yazdırılabilir karakter (denetim karakterleri sekme, yeni satır ve satır başı dönmek yazdırılabilir null dışında değil)

(*, a, t, l vb.)

Bazıları veya tümü daha önce listelenen Kesiciler dahil olmak üzere en fazla 10 yazdırılabilir karakter dizesi

(** \t**, end,!!!!!!!!!!, \t—\n vb.)

1 Yalnızca t, n, r, 0 ve '\0' karakterler, denetim karakterini üretmek için ters eğik çizgi kaçış karakteri ile çalışır.

2 Null denetim karakteri (\0) yazdırıldığında görünür olmasına rağmen çok farklı bir karakter veri dosyasında olduğunu.Bu, bir alan veya satır Sonlandırıcı alan veya satır Sonlandırıcı hiç sahip'den farklı olarak, null denetim karakterini kullanarak anlamına gelir.

Önemli notÖnemli

Sonlandırıcı karakter veri içinde ortaya çıkarsa, bu karakterin sonraki ait olarak yorumlanır sonra bu verileri ve veri olarak değil bir sonlandırıcı olarak yorumlanır alan veya kaydı.Bu nedenle, dikkatle, bunlar hiçbir zaman verilerinizi göründüğünden emin olmak için bilgisayarınızın Kesiciler seçin.

Satır sonlandırıcılar kullanma

Satır Sonlandırıcı son alan Sonlandırıcı olarak aynı karakter olabilir.Genellikle, ancak ayrı satır Sonlandırıcı yararlı olur.Örneğin, sekmeli bir çıktı oluşturmak için son işten alan her satırdaki yeni satır karakteri (\n) ve diğer tüm alansekme karakteri (\t) ile s.Veri dosyasının kendi satırında her veri kaydı yerleştirmek için birleşim \r\n satır Sonlandırıcı belirtin.

Not

Kullandığınızda, bcp etkileşimli olarak \n (yeni satır) satır Sonlandırıcı belirtmek ve bcp otomatik olarak bir \r\n satır Sonlandırıcı içinde sonuçlar \r (başı) karakteri ile ekler.

Toplu verme belirtimini Kesiciler

Ne zaman, toplu vermek char veya nchar veri ve bir varsayılan olmayan Sonlandırıcı kullanmak istediğiniz için Sonlandırıcı belirtmeniz gerekir bcp komut.Sonlandırıcılar aşağıdaki yollardan herhangi birini belirtebilirsiniz:

  • Alan alanını ayrı ayrı Sonlandırıcı belirten bir biçim dosyası ile.

    Not

    Biçim dosyaları kullanma hakkında daha fazla bilgi için bkz: Biçimi dosyaları veri verme veya alma için.

  • Bir biçim dosyası aşağıdaki seçenekler mevcuttur:

    • Kullanarak -t geçmek bir satırın son alan dışındaki tüm alanlar için satır Sonlandırıcı belirtin ve kullanma - r geç bir satır Sonlandırıcı belirtin.

    • Karakter biçim anahtarı kullanarak (- c veya -w) olmadan -t sekme karakteri alan ayırıcısı ayarlar, anahtar, \t.Bu belirtme aynıdır -t\t.

      Not

      Belirtirseniz, - n (yerel veri) veya -n (Unicode yerel) anahtarı sonlandırıcılar eklenir.

    • Etkileşimli, bcp komutu içeren , veya dışarı biçim dosyası anahtarı ya da seçenek (-f) veya bir veri biçim anahtarını (- n, - c, -w, veya -n), ve önek uzunluğu ve alan uzunluğu belirtmek her alanın alan ayırıcısı için komut ister seçtiğiniz, varsayılan değer hiçbiri:

      Enter field terminator [none]:

      Genellikle, varsayılan değer uygun bir seçimdir.Ancak, için char veya nchar veri alanları "Yönergeler sonlandırıcılar kullanma" aşağıdaki alt bölümüne bakın Bu bağlamda sor gösteren bir örnek için bkz: Veri biçimleri için Uyumluluk kullanma bcp tarafından belirtme.

      Not

      Etkileşimli olarak tüm alanlarında belirttiğiniz sonra bir bcp komutu, kaydettiğiniz her alan için verdiğiniz yanıtları olmayan bir-xml komut istemlerini biçim dosyası.Olmayan xml biçimi dosyaları hakkında daha fazla bilgi için bkz: Olmayan xml biçimi dosyaları anlama.

Sonlandırıcılar kullanma yönergeleri

Bazı durumlarda, bir sonlandırıcı yararlıdır bir char veya nchar veri alan.Örneğin:

  • Veri sütun önek uzunluğu bilgileri anlamayan bir programa alınacak veri dosyasında null bir değer içerir.

    Herhangi bir veri sütun içeren bir null değeri değişken uzunluk olarak kabul edilir.Önek uzunlukları olmaması durumunda bir sonlandırıcı sonuna kadar verileri doğru yorumlanması dikkat ederek null bir alan tanımlamak gereklidir.

  • Uzun süre sabit uzunluklu sütun için alanı yalnızca kısmen birçok satırlara göre kullanılır.

    Bu durumda, bir sonlandırıcı belirten bir değişken uzunluk alanı olarak ele alan vererek depolama alanı en aza indirebilirsiniz.Hakkında daha fazla bilgi Interplay önek uzunluğu, alan uzunluğu ve Kesiciler üzerinde depolanmasını char , verileri görmek Karakter biçiminde veri depolama.

Örnekler

This example bulk exports the data from the AdventureWorksHumanResources.Department table to the Department-c-t.txt data file using character format, with a comma as a field terminator and the newline character (\n) as the row terminator.

The bcp command contains the following switches.

Anahtarı

Açıklama

-c

Veri alanları karakter veri olarak yüklenmesi belirtir.

-t,

Virgül (,) olarak belirtir alan ayırıcısı.

-r \n

Satır Sonlandırıcı yeni satır karakteri olarak belirtir.Bunu belirleyen isteğe bağlı, bu nedenle varsayılan satır Sonlandırıcı budur.

-T

Belirleyen bir bcp yardımcı programını bağlanır SQL Server ile bir güvenilir bağlantı kullanarak tümleşik güvenlik.If -T is not specified, you need to specify -U and -P to successfully log in.

Daha fazla bilgi için bkz: bcp Yardımcı Programı.

En Microsoft Windows komut istemi istemine girin:

bcp AdventureWorks2008R2.HumanResources.Department out C:\myDepartment-c-t.txt -c -t, -r \n -T

Bu oluşturur Department-c-t.txt, dört 16 kayıtları içeren her alanlar.Alanların virgül ile ayrılır.

Toplu alma için sonlandırıcılar belirtme

Ne zaman, toplu alma char veya nchar verileri, toplu alma komutu gerekir tanımak Kesiciler kullanılan veri dosyası.Nasıl Kesiciler belirtilen toplu alma komutunu aşağıdaki gibi bağlıdır:

  • BCP

    Alma işlemi için sonlandırıcılar belirtme verme işlemi olarak aynı sözdizimini kullanır."Belirten sonlandırıcılar toplu ver," daha fazla bilgi için bkz: Bu konunun önceki kısımlarında.

  • BULK INSERT

    Sonlandırıcılar belirtilebilir veya tüm veri dosyası biçim dosyası tek tek alanları için aşağıdaki gösterilen niteleyicileri kullanılarak tablo.

    Niteleyici

    Açıklama

    FIELDTERMINATOR ='field_terminator'

    Belirtir alan ayırıcısı karakter ve Unicode karakter veri dosyası için kullanılacak.

    \T (sekme karakteri) varsayılandır.

    ROWTERMINATOR ='row_terminator'

    Karakter ve Unicode karakter veri dosyası için kullanılacak satır Sonlandırıcı belirtir.

    \N (yeni satır karakteri) varsayılandır.

    Daha fazla bilgi için bkz: BULK INSERT (Transact-SQL).

  • EKLE...SEÇİN * OPENROWSET(BULK...) DAN

    openrowset toplu satır kümesi sağlayıcı için Kesiciler (büyük nesne veri türleri için dışında gerekli olan) yalnızca biçim dosyası içinde belirtilebilir.Varsayılan olmayan bir sonlandırıcı karakter veri dosyası kullanıyorsa, bunu tanımlanmalıdır biçim dosyası.Daha fazla bilgi için bkz: Bir biçim dosyası oluşturuluyor ve Veri Al toplu için bir biçim dosyası kullanma.

    openrowset bulk yan tümce tümce tümce hakkında daha fazla bilgi için bkz: OPENROWSET (Transact-SQL).

Örnekler

Bu bölümdeki örnekler toplu alma karakter veri formu Department-c-t.txt önceki örnekte oluşturulmuş veri dosyası myDepartment , tablo AdventureWorks2008R2 örnek veritabanı.Örnekleri çalıştırmak için önce bu tablo oluşturmanız gerekir.Bu tablo altında oluşturmak için dbo şema, de SQL Server Management Studio Query Editor yürütmek aşağıdaki kodu:

USE AdventureWorks2008R2;
GO
DROP TABLE myDepartment;
CREATE TABLE myDepartment 
(DepartmentID smallint,
Name nvarchar(50),
GroupName nvarchar(50) NULL,
ModifiedDate datetime not NULL CONSTRAINT DF_AddressType_ModifiedDate DEFAULT (GETDATE())
);
GO

A.Sonlandırıcılar etkileşimli olarak belirtmek için BCP kullanma

Aşağıdaki örnek toplu alır Department-c-t.txt veri dosyasını kullanarak bir bcp komut.Bu komut, toplu vermek komutu aynı komut anahtarlarını kullanır."Belirten sonlandırıcılar toplu ver," daha fazla bilgi için bkz: Bu konunun önceki kısımlarında.

Windows komut istemi istemine girin:

bcp AdventureWorks2008R2..myDepartment in C:\myDepartment-c-t.txt -c -t , -r \n -T

B.Sonlandırıcılar etkileşimli olarak belirtmek için bulk INSERT kullanma

Aşağıdaki örnek toplu alır Department-c-t.txt veri dosyasını kullanarak bir BULK INSERT deyim aşağıdaki tablo. gösterilen niteleyicileri kullanan

Seçenek

Attribute

DATAFILETYPE ='char'

Veri alanları karakter veri olarak yüklenmesi belirtir.

FIELDTERMINATOR =','

Virgül belirtir (,) olarak alan ayırıcısı.

ROWTERMINATOR ='\n'

Satır Sonlandırıcı yeni satır karakteri olarak belirtir.

De SQL Server Management Studio Query Editor yürütmek aşağıdaki kodu:

USE AdventureWorks2008R2;
GO
BULK INSERT myDepartment FROM 'C:\myDepartment-c-t.txt'
   WITH (
      DATAFILETYPE = 'char',
      FIELDTERMINATOR = ',',
      ROWTERMINATOR = '\n'
);
GO