Aracılığıyla paylaş


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 alanın sonuna işaretlemek izin bir alan ayırıcısı ve her bir satır sonuSatır Sonlandırıcı.Sonlandırıcı karakterler, bir alanı satır sona erer ve başka bir alan veya satır başladığı veri dosyasını okumak için programları belirtmek için bir yoldur.

Important noteImportant Note:

Yerel veya Unicode yerel biçimi kullandığınızda, alan sonlandırıcılar 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 deyim, and the OPENROWSET toplu satır kümesi sağlayıcı support a variety of characters as alan or row terminators and always look for the first örnek of each terminator.Aşağıdaki tabloda, desteklenen karakterler için sonlandırıcılar listeler.

Sonlandırıcı karakter

Gösterilir

Sekme

\t

Bu, varsayılan alan ayırıcısı.

Yeni satır karakteri

\n

Bu, varsayılan satır Sonlandırıcı olur.

Satır başı/satır besleme

\r

Ters eğik çizgi1

\\

null bir sonlandırıcı (nonvisible Sonlandırıcı)2

\0

Yazdırılabilir karakterlerden (denetim karakterleri sekmesinde, yeni satır ve satır başı dışında null, yazdırılabilir değil)

(*, A, t, l ve benzerleri)

Bazı veya tüm daha önce listelenen sonlandırıcılar gibi yazdırılabilir en çok 10 karakter dizesi

(** \t**, bitiş,!!!!!!!!!!, \t—\n vb.)

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

2 Null denetim karakterini (\0) yazdırıldığında görünür durumda değilse olsa bile, farklı bir karakter veri dosyası var.Bu, bir alan veya satır Sonlandırıcı hiçbir alan veya satır Sonlandırıcı hiç gerek daha farklı olarak, null denetim karakteri kullanarak anlamına gelir.

Important noteImportant Note:

Verileri bir sonlandırıcı karakter ortaya çıkarsa, bu karakter, sonraki ait olarak yorumlanır sonra veri ve veri olarak değil bir sonlandırıcı yorumlanır alan veya kayıt.Bu nedenle, sonlandırıcılar dikkatle, hiçbir zaman verilerinizi göründüğünden emin olmak için 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ı bir satıra bir sonlandırıcı yararlıdır.Örneğin, sekmeli bir çıktı oluşturmak için , en son alanda yeni satır karakteri (\n) içeren her satır ve diğer tüm alanlar sekmeyi (\t) karakteri ile sonlandırın.Veri dosyasının kendi satırında, her veri kaydı yerleştirmek için , satır Sonlandırıcı birleşimi \r\n belirtin.

Not

Kullandığınızda Kullanımıbcp etkileşimli ve satır Sonlandırıcı \n (yeni satır) belirtinKullanımıbcp otomatik olarak bunun içinde bir satır Sonlandırıcı \r\n. sonuçlar bir \r (satır) karakter ekler

toplu vermek belirtimini sonlandırıcılar

Verme hangi koşullarda toplu char veya nchar veri ve bir varsayılan olmayan Sonlandırıcı kullanmak istediğiniz için Sonlandırıcı belirtmelisiniz Kullanımıbcp komutu.Sonlandırıcılar aşağıdaki yollardan birini belirtebilirsiniz:

  • Sonlandırıcı alanı alan için ayrı ayrı belirten bir biçim dosyası.

    Not

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

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

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

    • Bir karakter biçim anahtarını (kullanma-c or -w) -t sekme karakteri, \t. alan ayırıcısı ayarlar anahtarı Bu belirtme aynıdır -t\t.

      Not

      Belirttiğiniz -n (yerel veri) veya -N (Unicode yerel) anahtarı, sonlandırıcılar değil eklenir.

    • Etkileşimli bir ıf Kullanımıbcp komutu içeririçinde or Çıkış seçeneği olmadan da biçim dosyası anahtarı (-f) veya bir veri biçimi (-n, -c, -w, veya -N), ve önek uzunluğu ve alan uzunluğu belirtmek her alanın, alan ayırıcısı varsayılan hiçbiri için komut ister seçtiniz:

      Enter field terminator [none]:

      Genellikle, varsayılan uygun bir seçimdir.Ancak, için char veya ncharveri alanları "için kullanma sonlandırıcılar Kılavuzu." aşağıdaki alt bölümüne bakın. Bağlamında bu istemi gösteren bir örnek için bkzVeri biçimleri için uyumluluk kullanma Kullanımıbcp belirtme.

      Not

      Etkileşimli olarak tüm alanları belirttiğinizde bir Kullanımıbcp komutu, komut istemleri olmayan XML biçimi dosyasında her alan için yanıtları kaydedin.Olmayan XML biçimi dosyaları hakkında daha fazla bilgi için bkz: Disk 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:

Ö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.Bu tablo hakkında daha fazla bilgi için bkz: Departman tablo (AdventureWorks).

The bcp command contains the following switches.

Anahtarı

Açıklama

-c

Veri alanları karakter verilerinin yüklenmesi belirtir.

-t,

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

-r \n

Satır Sonlandırıcı bir yeni satır karakteri belirtir.Bunu belirten isteğe bağlı için varsayılan satır Sonlandırıcı, budur.

-T

Belirleyen Kullanımıbcp için yardımcı programı bağlanırSQL Server tümleşik güvenlik kullanarak güvenilir bağlantı ile. If -T belirtilmezse, belirtmek gerekir-U and -P in. başarıyla oturum açmak için

Daha fazla bilgi için bkz:Kullanımıbcp yardımcı programı.

AT Microsoft Windows komut istemi istemini girin:

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

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

Sonlandırıcılar için belirten toplu alma

Alma hangi koşullarda toplu char veya nchar veriler, toplu alma komutu veri dosyasında kullanılan sonlandırıcılar tanımalıdır. Sonlandırıcılar nasıl belirtilebilir toplu alma komutunu aşağıdaki gibi bağlıdır:

  • Kullanımıbcp

    Bir alma işlemi için sonlandırıcılar belirten bir verme işlemi için aynı sözdizimini kullanır.Daha fazla bilgi için bu konunun önceki kısımlarında "Belirtme sonlandırıcılar için toplu vermek," konusuna bakın.

  • TOPLU EKLEME

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

    Niteleyici

    Açıklama

    FIELDTERMINATOR ='field_terminator'

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

    \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...) GELEN

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

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

Örnekler

Bu bölüm toplu örneklerde karakter veri formu içe Department-c-t.txt veri dosyası içinde bir önceki örnekte oluşturulmuş myDepartment ' de tablo AdventureWorks Örnek Veritabanı'nı tıklatın. Bu tablo, örnekler çalıştırmadan önce oluşturmanız gerekir.Bu tablo altında oluşturmak için dbo şemaSQL Server Management Studio Sorgu Düzenleyicisi'nde, yürütmek aşağıdaki kodu:

USE AdventureWorks;
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

C.Etkileşimli sonlandırıcılar belirtmek için Kullanımıbcp kullanma

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

Windows komut istemi girin:

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

b.Etkileşimli sonlandırıcılar belirtmek için BULK ıNSERT'ı kullanma

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

Seçenek

Attribute

DATAFILETYPE ='char'

Veri alanları karakter verilerinin yüklenmesi belirtir.

FIELDTERMINATOR =','

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

ROWTERMINATOR ='\n'

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

Içinde SQL Server Management Studio Sorgu Düzenleyicisi'nde, aşağıdaki kodu çalıştırın:

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