Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Azure Synapse Analytics
Analytics Platform Sistemi (PDW)
Microsoft Fabric
Warehouse'da SQL analiz uç noktası
Karakter veri alanları için isteğe bağlı sonlandırma karakterleri, veri dosyasındaki her alanın sonunu alan sonlandırıcı ve her satırın sonunu satır sonlandırıcısı ile işaretlemenize olanak sağlar. Karakterleri sonlandırmak, bir alanın veya satırın sona erdiği ve başka bir alanın veya satırın başladığı veri dosyasını okuyan programlara göstermenin bir yoludur.
Important
Özgün veya Unicode özgün biçimi kullandığınızda, alan sonlandırıcıları yerine uzunluk öneklerini kullanın. Yerel biçimli bir veri dosyası Microsoft SQL Server iç ikili veri biçiminde depolandığından yerel biçim verileri sonlandırıcılarla çakışabilir.
Sonlandırıcı olarak desteklenen karakterler
bcp komutu, BULK INSERT deyimi ve OPENROWSET toplu satır kümesi sağlayıcısı, alan veya satır sonlandırıcıları olarak çeşitli karakterleri destekler ve her zaman her sonlandırıcının ilk örneğini arar. Sonlandırıcılar için desteklenen karakterler aşağıdaki tabloda listelenmiştir.
| Sonlandırıcı karakter | Tarafından belirtilen | Description |
|---|---|---|
| Tab | \t |
Bu, varsayılan alan sonlandırıcısıdır. |
| Yeni satır karakteri | \n |
Bu, varsayılan satır sonlandırıcısıdır. |
| Satır başı dönüşü/satır beslemesi | \r |
|
| Ters eğik çizgi 1 | \ |
|
| Null sonlandırıcı (görünür olmayan sonlandırıcı) 2 | \0 |
|
| Yazdırılabilir karakterler (denetim karakterleri null, sekme, yeni satır ve satır başı dışında yazdırılamaz) | (*, A, t, lvb.) |
|
| Daha önce listelenen sonlandırıcıların bazıları veya tümü dahil olmak üzere en çok 10 yazdırılabilir karakterden oluşan dize | (**\t**, end, !!!!!!!!!!, \t-\nvb.) |
1 Yalnızca t, n, r, 0 ve \0 karakterleri, bir denetim karakteri oluşturmak için ters eğik çizgi kaçış karakteriyle çalışır.
2 Null denetim karakteri (\0) yazdırıldığında görünür olmasa da, veri dosyasında ayrı bir karakterdir. Bu, null denetim karakterini alan veya satır sonlandırıcı olarak kullanmanın hiçbir alan veya satır sonlandırıcısı olmamasından farklı olduğu anlamına gelir.
Important
Verilerin içinde bir sonlandırıcı karakteri oluşursa, karakter veri olarak değil sonlandırıcı olarak yorumlanır ve bu karakterden sonraki veriler bir sonraki alana veya kayda ait olarak yorumlanır. Bu nedenle, verilerinizde hiç görünmemelerini sağlamak için sonlandırıcılarınızı dikkatlice seçin. Örneğin, düşük vekil alan sonlandırıcısı, veriler bu düşük vekili içeriyorsa alan sonlandırıcısı için iyi bir seçim değildir.
Satır sonlandırıcılarını kullanma
Satır sonlandırıcısı, son alanın sonlandırıcısı ile aynı karakter olabilir. Ancak genellikle farklı bir satır sonlandırıcısı kullanışlıdır. Örneğin, tablosal çıkış üretmek için, her satırdaki son alanı yeni satır karakteriyle () ve sekme karakteriyle (\n\t) diğer tüm alanları sonlandırın. Her veri kaydını veri dosyasında kendi satırına yerleştirmek için, birleşimi \r\n satır sonlandırıcısı olarak belirtin.
Note
bcp'yi etkileşimli olarak kullandığınızda ve satır sonlandırıcı olarak \n (yeni satır) belirttiğinizde, bcp bunu otomatik olarak bir \r (satır başı dönüşü) karakteriyle önekler, bu da bir satır sonlandırıcı \r\n ile sonuçlanır.
Toplu dışarı aktarma için sonlandırıcıları belirtin
char veya nchar verilerini toplu dışarı aktardığınızda ve varsayılan olmayan bir ayraç kullanmak istediğinizde, bcp komutuna ayracı belirtmeniz gerekir. Sonlandırıcıları aşağıdaki yollardan herhangi biriyle belirtebilirsiniz:
Her bir alan için sonlandırıcıyı belirten bir biçim dosyasıyla.
Note
Biçim dosyalarını kullanma hakkında bilgi için bkz. Verileri içeri veya dışarı aktarmak için dosyaları biçimlendirme (SQL Server).
Biçim dosyası olmadan aşağıdaki alternatifler vardır:
Satırdaki son alan dışındaki tüm alanlar için alan sonlandırıcısını belirtmek üzere
-tanahtarını kullanın ve bir satır sonlandırıcı belirtmek için-ranahtarını kullanarak devam edin.-canahtarı olmadan, alan sonlandırıcısını sekme karakteri-wolarak ayarlayan bir karakter biçimi anahtarı (-tveya\t) kullanın. Bu, belirtilmesiyle-t\taynıdır.Note
-n(yerel veriler) veya-N(Unicode yerel) anahtarlarını belirtirseniz sonlandırıcılar eklenmez.Etkileşimli bcp komutu, format dosyası anahtarını (
in) veya veri-biçimi anahtarlarından birini (out,-f,-nveya-c) içermeden-wveya-Nseçeneğini içeriyorsa ve ön ek uzunluğunu ve alan uzunluğunu belirtmemeyi seçerseniz, komut her alan için alan sonlandırıcısını sorar. Varsayılan olarak, alan sonlandırıcısı yoktur.Enter field terminator [none]:Genel olarak, varsayılan uygun bir seçimdir. Ancak , char veya nchar veri alanları için aşağıdaki "Sonlandırıcıları Kullanma Yönergeleri" alt bölümüne bakın. Bu istemi bağlamda gösteren bir örnek için bkz. bcp (SQL Server) kullanırken uyumluluk veri biçimlerini belirtme.
Note
bcp komutundaki tüm alanları etkileşimli olarak belirttikten sonra komut, her alan için yanıtlarınızı XML olmayan bir biçim dosyasına kaydetmenizi ister. XML olmayan biçim dosyaları hakkında daha fazla bilgi için bkz. XML dışı biçim dosyalarını (SQL Server) kullanma.
Sonlandırıcıları kullanma yönergeleri
Bazı durumlarda, sonlandırıcı karakter veya nchar veri alanı için yararlıdır. Örneğin:
Ön ek uzunluğu bilgilerini anlamayan bir programa aktarılacak bir veri dosyasında null değer içeren bir veri sütunu için.
Null değer içeren herhangi bir veri sütunu değişken uzunluk olarak kabul edilir. Ön ek uzunluklarının olmaması halinde, verilerin doğru yorumlandığından emin olmak için null alanın sonunu tanımlamak için bir sonlandırıcı gerekir.
Alanı çok sayıda satır tarafından yalnızca kısmen kullanılan uzun, sabit uzunlukta bir sütun için.
Bu durumda, bir sonlandırıcı belirtmek depolama alanını en aza indirerek alanın değişken uzunlukta bir alan olarak değerlendirilmesini sağlayabilir.
Toplu dışa aktarma için \n'yi satır sonlandırıcı olarak belirtin.
Toplu dışarı aktarma için satır sonlandırıcı olarak \n'u belirttiğinizde veya varsayılan satır sonlandırıcısını örtük olarak kullandığınızda, bcp satır sonlandırıcısı olarak bir satır başı-satır besleme (CRLF) kombinasyonu verir. Unix ve Linux bilgisayarlarda olduğu gibi satır sonlandırıcısı olarak yalnızca satır besleme karakteri (LF) çıkarmak istiyorsanız, LF satır sonlandırıcısını belirtmek için onaltılık gösterim kullanın. Örneğin:
bcp -r '0x0A'
Examples
Bu örnek, AdventureWorks2022.HumanResources.Department tablosundaki verileri, alan sonlandırıcısı olarak virgül ve satır sonlandırıcısı olarak yeni satır karakteri (\n) ile karakter biçimini kullanarak Department-c-t.txt veri dosyasına toplu olarak dışarı aktarır.
bcp komutu aşağıdaki seçenekleri içerir.
| Switch | Description |
|---|---|
-c |
Veri alanlarının karakter verileri olarak yüklendiğini belirtir. |
-t , |
Virgülü (,) alan sonlandırıcı olarak belirtir. |
-r \n |
Satır sonlandırıcısını yeni satır karakteri olarak belirtir. Bu varsayılan satır sonlandırıcısıdır, bu nedenle isteğe bağlı olarak belirtilir. |
-T |
bcp yardımcı programının tümleşik güvenlik kullanarak güvenilir bir bağlantıyla SQL Server'a bağlandığını belirtir. Eğer -T belirtilmezse, -U ve -P belirtmeniz gerekir ki başarıyla oturum açabilirsiniz. |
Daha fazla bilgi için bkz. bcp Yardımcı Programı.
Microsoft Windows komut istemine şunu girin:
bcp AdventureWorks2022.HumanResources.Department out C:\myDepartment-c-t.txt -c -t, -r \n -T
Bu, her birinde dört alan bulunan 16 kayıt içeren Department-c-t.txtoluşturur. Alanlar virgülle ayrılır.
Toplu içeri aktarma için sonlandırıcıları belirtme
char veya nchar verilerini toplu içeri aktardığınızda, toplu içeri aktarma komutunun veri dosyasında kullanılan sonlandırıcıları tanıması gerekir. Sonlandırıcıların nasıl belirtilebileceği, toplu içeri aktarma komutuna bağlıdır:
bcp
İçeri aktarma işlemi için sonlandırıcıların belirtilmesi, dışarı aktarma işlemiyle aynı söz dizimini kullanır. Daha fazla bilgi için, bu makalenin önceki bölümlerinde yer alan Toplu dışarı aktarma için sonlandırıcıları belirtme bölümüne bakın.
BULK INSERTSonlandırıcılar, aşağıdaki tabloda gösterilen niteleyiciler kullanılarak bir biçim dosyasındaki tek tek alanlar için veya veri dosyasının tamamı için belirtilebilir.
Qualifier Description FIELDTERMINATOR = '<field_terminator>'Karakter ve Unicode karakter veri dosyaları için kullanılacak alan sonlandırıcısını belirtir.
Varsayılan değer\t(sekme karakteri) değeridir.ROWTERMINATOR = '<row_terminator>'Karakter ve Unicode karakter veri dosyaları için kullanılacak satır sonlandırıcısını belirtir.
Varsayılan değer\n(yeni satır karakteri).Daha fazla bilgi için bkz. BULK INSERT.
INSERT ... SELECT * FROM OPENROWSET(BULK...)OPENROWSETToplu satır kümesi sağlayıcısı için sonlandırıcılar yalnızca biçim dosyasında belirtilebilir (büyük nesne veri türleri dışında gereklidir). 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. Biçim Dosyası Oluşturma (SQL Server) ve Verileri Toplu İçeri Aktarmak için Biçim Dosyası Kullanma (SQL Server).OPENROWSET BULKmaddesi hakkında daha fazla bilgi için bkz. OPENROWSET (BULK).
Toplu içeri aktarma için \n'yi satır sonlandırıcı olarak belirtin.
Toplu içeri aktarma için satır sonlandırıcı olarak \n belirttiğinizde veya varsayılan satır sonlandırıcısını örtük olarak kullandığınızda, bcp ve BULK INSERT deyimi, satır sonlandırıcısı olarak satırbaşı-satırsonu kombinasyonu (CRLF) bekler. Kaynak dosyanız, Unix ve Linux bilgisayarlarda oluşturulan dosyalarda olduğu gibi satır sonlandırıcısı olarak yalnızca satır akışı karakteri (LF) kullanıyorsa, LF satır sonlandırıcısını belirtmek için onaltılık gösterim kullanın. Örneğin, bir BULK INSERT deyimde:
ROWTERMINATOR = '0x0A'
Examples
Bu bölümdeki örnekler, önceki örnekte oluşturulan Department-c-t.txt veri dosyasındaki karakter verilerini, myDepartment örnek veritabanındaki AdventureWorks2025 tablosuna toplu olarak içeri aktarır. Örnekleri çalıştırabilmeniz için önce bu tabloyu oluşturmanız gerekir. Şema altında dbo bu tabloyu oluşturmak için SQL Server Management Studio Sorgu Düzenleyicisi'nde aşağıdaki kodu yürütür:
USE AdventureWorks2022;
GO
DROP TABLE myDepartment;
CREATE TABLE myDepartment
(
DepartmentID SMALLINT,
Name NVARCHAR (50),
GroupName NVARCHAR (50) NULL,
ModifiedDate DATETIME CONSTRAINT
DF_AddressType_ModifiedDate DEFAULT (GETDATE()) NOT NULL
);
GO
A. Terminatörleri etkileşimli olarak belirtmek için bcp kullanma
Aşağıdaki örnek, Department-c-t.txt komutunu kullanarak bcp veri dosyasını toplu olarak içeri aktarır. Bu komut, toplu dışarı aktarma komutuyla aynı komut anahtarlarını kullanır. Daha fazla bilgi için, bu makalenin önceki bölümlerinde yer alan Toplu dışarı aktarma için sonlandırıcıları belirtme bölümüne bakın.
Windows komut isteminde aşağıdaki komutu yazın:
bcp AdventureWorks2022.dbo.myDepartment in C:\myDepartment-c-t.txt -c -t , -r \n -T
B. Terminatörleri etkileşimli olarak belirtmek için BULK INSERT kullanma
Aşağıdaki örnek, aşağıdaki tabloda gösterilen niteleyicileri kullanan bir Department-c-t.txt deyimi kullanarak BULK INSERT veri dosyasını toplu olarak içeri aktarır.
| Option | Attribute |
|---|---|
DATAFILETYPE = 'char' |
Veri alanlarının karakter verileri olarak yüklendiğini belirtir. |
FIELDTERMINATOR = ',' |
Alan sonlandırıcısı olarak virgül (,) belirtir. |
ROWTERMINATOR = '\n' |
Satır sonlandırıcısını yeni satır karakteri olarak belirtir. |
SQL Server Management Studio Sorgu Düzenleyicisi'nde aşağıdaki kodu yürütür:
USE AdventureWorks2022;
GO
BULK INSERT myDepartment FROM 'C:\myDepartment-c-t.txt'
WITH (
DATAFILETYPE = 'char',
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
);
GO