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
Analitik Platform Sistemi (PDW)
Microsoft Fabric'te SQL veritabanı
Alan uzunluğu, verileri karakter biçiminde göstermek için gereken en fazla karakter sayısını gösterir. Verilerin yerel biçimde depolandığında alan uzunluğu zaten bilinir; örneğin, int veri türü 4 bayt alır. Ön ek uzunluğu için 0 belirttiyseniz , bcp komutu sizden alan uzunluğu, varsayılan alan uzunlukları ve char verileri içeren veri dosyalarında alan uzunluğunun veri depolama üzerindeki etkisini ister.
Alan uzunluğu için bcp istemi
Etkileşimli bcp komutu, format dosyası anahtarı (in) veya veri biçimi anahtarı (out, -f, -n, -c) olmadan -w veya -N seçeneklerini içeriyorsa, komut her veri alanının alan uzunluğunu aşağıdaki gibi ister:
Enter length of field <field_name> [<default>]:
Bu istemi bağlamda gösteren bir örnek için bkz. Bcp Kullanırken Uyumluluk için Veri Biçimlerini Belirtme (SQL Server).
Uyarı
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ı (SQL Server).
Bcp komutunun alan uzunluğu isteyip istemediği aşağıdaki gibi çeşitli faktörlere bağlıdır:
Sabit uzunlukta olmayan veri türlerini kopyalarken ve ön ek uzunluğunu 0 olarak belirlediğinizde, bcp sizden alan uzunluğunu girmenizi ister.
Karakter olmayan verileri karakter verilerine dönüştürürken bcp , verileri depolamak için yeterince büyük bir varsayılan alan uzunluğu önerir.
Dosya depolama türü karakter dışıysa bcp komutu alan uzunluğu istemez. Veriler Microsoft SQL Server yerel veri gösteriminde (yerel biçim) depolanır.
Varsayılan alan uzunluklarını kullan
Genellikle Microsoft, alan uzunluğu için bcp tarafından önerilen varsayılan değerleri kabul etmenizi önerir. Karakter modu veri dosyası oluşturulduğunda, varsayılan alan uzunluğunun kullanılması verilerin kesilmemesini ve sayısal taşma hatalarının oluşmamasını sağlar.
Yanlış bir alan uzunluğu belirtirseniz, sorunlar oluşabilir. Örneğin, sayısal verileri kopyalarken ve veriler için çok kısa bir alan uzunluğu belirttiğinizde, bcp yardımcı programı bir taşma mesajı yazdırır ve verileri kopyalamaz. Ayrıca , tarih saat verilerini dışarı aktarır ve karakter dizesi için 26 bayttan az bir alan uzunluğu belirtirseniz , bcp yardımcı programı verileri hata iletisi olmadan kısaltır.
Önemli
Varsayılan boyut seçeneği kullanıldığında, SQL Server bir dizenin tamamını okumayı bekler. Bazı durumlarda, varsayılan alan uzunluğunun kullanılması "beklenmeyen dosya sonu" hatasına neden olabilir. Genellikle bu hata, veri dosyasında beklenen alanın yalnızca bir bölümü oluştuğunda para ve tarih saat veri türlerinde oluşur; örneğin, saat bileşeni olmadan mm//tarih saat değeri belirtildiğinde ve bu nedenle karakter biçiminde birtarih saat değerinin beklenen 24 karakter uzunluğundan daha kısa olduğunda. Bu tür bir hatayı önlemek için alan sonlandırıcıları veya sabit uzunlukta veri alanlarını kullanın veya başka bir değer belirterek varsayılan alan uzunluğunu değiştirin.
Karakter dosyası depolama için varsayılan alan uzunlukları
Aşağıdaki tabloda, verilerin karakter dosyası depolama türü olarak depolanması için varsayılan alan uzunlukları listelanmaktadır. Boş değer atanabilir veriler, boş değer alamayan veri ile aynı uzunluktadır.
| Veri türü | Varsayılan uzunluk (karakterler) |
|---|---|
| char | Sütun için tanımlanan uzunluk |
| varchar | Sütun için tanımlanan uzunluk |
| nchar | Sütun için tanımlanan uzunluğun iki katı |
| nvarchar | Sütun için tanımlanan uzunluğun iki katı |
| Metin | 0 |
| ntext | 0 |
| bit | 1 |
| binary | Sütun için tanımlanan uzunluğun iki katı + 1 |
| varbinary | Sütun için tanımlanan uzunluğun iki katı + 1 |
| image | 0 |
| datetime | yirmi dört |
| smalldatetime | yirmi dört |
| float | 30 |
| Gerçek | 30 |
| int | 12 |
| bigint | 19 |
| smallint | 7 |
| tinyint | 5 |
| para | 30 |
| küçük para | 30 |
| decimal | 41 1 |
| Sayısal | 41 1 |
| uniqueidentifier | 37 |
| zaman etiketi | 17 |
| varchar(max) | 0 |
| varbinary(maks) | 0 |
| nvarchar(max) | 0 |
| UDT | Kullanıcı tanımlı terim (UDT) sütununun uzunluğu |
| XML | 0 |
| vector | Geçerli Değil 2 |
1Ondalık ve sayısal veri türleri hakkında daha fazla bilgi için bkz. Ondalık ve sayısal (Transact-SQL).
2Vektör veri türünün karaktere ve karakterden dönüştürülmesine izin verilmez.
Uyarı
tinyint türünde bir sütun 0 ile 255 arasında değerlere sahip olabilir; bu aralıktaki herhangi bir sayıyı temsil etmek için gereken karakter sayısı üst sınırı üçdür (100 ile 255 arasındaki değerleri temsil eder).
Yerel dosya depolama için varsayılan alan uzunlukları
Aşağıdaki tabloda yerel dosya depolama türü olarak depolanacak verilerin varsayılan alan uzunlukları listelanmaktadır. Boş değer atanabilir veriler, null olmayan verilerle aynı uzunluktadır ve karakter verileri her zaman karakter biçiminde saklanır.
| Veri türü | Varsayılan uzunluk (karakterler) |
|---|---|
| bit | 1 |
| binary | Sütun için tanımlanan uzunluk |
| varbinary | Sütun için tanımlanan uzunluk |
| image | 0 |
| datetime | 8 |
| smalldatetime | 4 |
| float | 8 |
| Gerçek | 4 |
| int | 4 |
| bigint | 8 |
| smallint | 2 |
| tinyint | 1 |
| para | 8 |
| küçük para | 4 |
| decimal | 1 |
| Sayısal | 1 |
| uniqueidentifier | 16 |
| zaman etiketi | 8 |
| vector | 8 baytlık vektör üst bilgisi + kayan dizi boyutu |
1Ondalık ve sayısal veri türleri hakkında daha fazla bilgi için bkz. ondalık ve sayısal (Transact-SQL).
Önceki tüm durumlarda, daha sonra SQL Server'a yeniden yüklenip depolama alanını en düşük düzeyde tutan bir veri dosyası oluşturmak için, varsayılan dosya depolama türü ve varsayılan alan uzunluğuna sahip bir uzunluk ön eki kullanın.
İlgili içerik
- bcp yardımcı programı
- Veri türleri (Transact-SQL)
- Alan ve satır sonlandırıcılarını belirtme (SQL Server)
- bcp kullanarak veri dosyalarında ön ek uzunluğunu belirtme (SQL Server)
- bcp kullanarak dosya depolama türünü belirtme (SQL Server)
- Toplu içeri aktarma (SQL Server) sırasında null veya varsayılan değerleri tutma