Aracılığıyla paylaş


bcp kullanarak dosya depolama türünü belirtme (SQL Server)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Dosya depolama türü, verilerin veri dosyasında nasıl depolandığını açıklar. Veriler, veritabanı tablo türü (yerel biçim), karakter gösterimi (karakter biçimi) veya örtük dönüştürmenin desteklendiği herhangi bir veri türü olarak veri dosyasına aktarılabilir; örneğin, bir smallint'iint olarak kopyalama. Kullanıcı tanımlı veri türleri, temel türleri olarak dışarı aktarılır.

Dosya depolama türü için bcp istemi

Etkileşimli bir bcp komutu, in veya out seçeneği ile birlikte ya biçim dosyası anahtarı (-f) ya da veri biçimi anahtarı (-n, -c, -w veya -N) olmadan içermiyorsa, komut, her veri alanının dosya depolama türünü aşağıdaki şekilde ister:

Enter the file storage type of field <field_name> [<default>]:

Bu istem yanıtınız, aşağıdaki gibi gerçekleştirdiğiniz göreve bağlıdır:

  • Microsoft SQL Server örneğindeki verileri mümkün olan en kompakt depolama (yerel veri biçiminde) bir veri dosyasına toplu olarak aktarmak için bcp tarafından sağlanan varsayılan dosya depolama türlerini kabul edin. Yerel dosya depolama türlerinin listesi için bu konunun devamında yer alan "Yerel Dosya Depolama Türleri" bölümüne bakın.

  • SQL Server örneğindeki verileri karakter biçimindeki bir veri dosyasına toplu olarak dışarı aktarmak için, tablodaki tüm sütunlar için dosya depolama türü olarak char değerini belirtin.

  • Verileri bir veri dosyasından SQL Server örneğine toplu olarak aktarmak için, dosya depolama türünü karakter biçiminde depolanan türler için char olarak belirtin ve yerel veri türü biçiminde depolanan veriler için dosya depolama türlerinden birini uygun şekilde belirtin:

    Dosya depolama türü Komut istemine yazın
    char c[har]
    varchar c[har]
    nchar w
    nvarchar w
    text T[ext]
    ntext2 W
    binary x
    varbinary x
    image I[mage]
    datetime d[ate]
    smalldatetime D
    time te
    date de
    datetime2 d2
    datetimeoffset do
    decimal n
    Sayısal n
    float f[loat]
    Gerçek r
    Int i[nt]
    bigint B[igint]
    smallint s[mallint]
    tinyint t[inyint]
    para m[oney]
    küçük para M
    bit b[it]
    uniqueidentifier u
    sql_variant V[ariant]
    zaman etiketi x
    UDT (kullanıcı tanımlı veri türü) U
    XML X
    vector v[ector]

    Alan uzunluğu, ön ek uzunluğu ve sonlandırıcıların etkileşimi, char dosyası depolama türü olarak dışarı aktarılan karakter dışı veriler için bir veri dosyasında ayrılan depolama alanı miktarını belirler.

    ** Ntext, metin ve görüntü veri türleri SQL Server'ın gelecekteki bir sürümünde kaldırılacaktır. Yeni geliştirme çalışmalarında bu veri türlerini kullanmaktan kaçının ve şu anda bunları kullanan uygulamaları değiştirmeyi planlayın. bunun yerine nvarchar(max), varchar(max)ve varbinary(max) kullanın.

Yerel dosya depolama türleri

Her yerel ve özgün dosya depolama türü, biçim dosyasında karşılık gelen bir host dosyası veri türü olarak kaydedilir.

Dosya depolama türü Ana dosya veri tipi
char SQLCHAR
varchar SQLCHAR
nchar SQLNCHAR
nvarchar SQLNCHAR
text SQLCHAR
ntext SQLNCHAR
binary SQLBİNARY
varbinary SQLBİNARY
image SQLBİNARY
datetime SQLTARIHSAAT
smalldatetime SQLDATETIM4
decimal SQLDECIMAL
Sayısal SQLNUMERIC
float SQLFLT8
Gerçek SQLFLT4
int SQLINT
bigint SQLBIGINT
smallint SQLSMALLINT
tinyint SQLTINYINT
para SQLMONEY
küçük para SQLMONEY4
bit SQLBIT
uniqueidentifier SQLUNIQUEID
sql_variant SQLVARIANT
zaman etiketi SQLBİNARY
UDT (kullanıcı tanımlı veri türü) SQLUDT
vector SQLVECTOR
  • Karakter biçiminde depolanan veri dosyaları, dosya depolama türü olarak char kullanır. Bu nedenle, karakter veri dosyaları için SQLCHAR, biçim dosyasında görünen tek veri türüdür.

  • Veriyi text, ntext ve image sütunlarına, bu sütunlarda DEFAULT değerleri varsa, toplu olarak içe aktaramazsınız.

Dosya depolama türleri için ek dikkat edilmesi gerekenler

Verileri SQL Server örneğinden bir veri dosyasına toplu olarak dışarı aktardığınızda:

  • Char'a ve char'dan dönüşümü desteklemeyen vektör türü sütunları dışında, her zaman dosya depolama türü olarak char belirtebilirsiniz.

  • Geçersiz örtük dönüştürmeyi temsil eden bir dosya depolama türü girerseniz bcp başarısız olur; örneğin, smallint verileri için int belirtebilirsiniz, ancak int verileri için smallint belirtirseniz taşma hataları oluşur.

  • Float, money, datetime veya int gibi ek değer içermeyen veri türleri veritabanı türleri olarak depolandığında, veriler SQL Server yerel biçiminde veri dosyasına yazılır.

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