使用 bcp 指定檔案儲存類型
檔案儲存類型描述資料如何儲存在資料檔中。資料可以依其資料庫資料表類型 (原生格式)、依其字元表示 (字元格式),或者依支援隱含轉換的任何資料類型匯出至資料檔;例如,將 smallint 複製為 int。使用者自訂資料類型會依其基底類型匯出。
![]() |
---|
如需有關資料轉換的資訊,請參閱<資料類型轉換 (Database Engine)>。 |
檔案儲存類型的 bcp 提示
如果互動式 bcp 命令包含 in 或 out 選項,但沒有格式檔案參數 (-f) 或資料格式參數 (-n、-c、-w 或 -N),則命令會要求提供每個資料欄位的檔案儲存類型,如下所示:
Enter the file storage type of field <field_name> [<default>]:
您對此提示的回應視執行的工作而定,如下所示:
若要以最精簡的儲存方式 (原生資料格式) 將 Microsoft SQL Server 執行個體的資料大量匯出到資料檔案,請接受 bcp 提供的預設檔案儲存類型。如需原生檔案儲存類型的清單,請參閱此主題稍後的「原生檔案儲存類型」。
若要以字元格式將 SQL Server 執行個體的資料大量匯出到資料檔案,請將資料表中所有資料行的檔案儲存類型指定為 char。
若要將 SQL Server 執行個體的資料大量匯入資料檔案,對於以字元格式儲存的類型,請將檔案儲存類型指定為 char,對於以原生資料類型格式儲存的資料,請指定其中一個適當的檔案儲存類型:
檔案儲存類型 在命令提示字元中輸入 char1
c[har]
varchar
c[har]
nchar
w
nvarchar
w
text2
T[ext]
ntext2
W
binary
x
varbinary
x
image2
I[mage]
datetime
d[ate]
smalldatetime
D
decimal
n
numeric
n
float
f[loat]
real
r
Int
i[nt]
bigint
B[igint]
smallint
s[mallint]
tinyint
t[inyint]
money
m[oney]
smallmoney
M
bit
b[it]
uniqueidentifier
u
sql_variant
V[ariant]
timestamp
x
UDT (使用者自訂的資料類型)
U
XML
X
1 欄位長度、前置長度及結束字元的互動,可決定在資料檔案中配置給非字元資料的儲存空間數量,此資料將匯出為 char 檔案儲存類型。如需詳細資訊,請參閱<字元格式資料的儲存>。
2 SQL Server 的未來版本中將會移除 ntext、text 與 image 資料類型。請避免在新的開發工作中使用這些資料類型,並規劃修改目前使用這些資料類型的應用程式。請改用 nvarchar(max)、varchar(max) 與 varbinary(max)。如需詳細資訊,請參閱<使用大數值資料類型>。
原生檔案儲存類型
每個原生檔案儲存類型都記錄於格式檔案內,作為對應的主檔案資料類型。
檔案儲存類型 | 主檔案資料類型 |
---|---|
char1 |
SQLCHAR |
varchar |
SQLCHAR |
nchar |
SQLNCHAR |
nvarchar |
SQLNCHAR |
text2 |
SQLCHAR |
ntext2 |
SQLNCHAR |
binary |
SQLBINARY |
varbinary |
SQLBINARY |
image2 |
SQLBINARY |
datetime |
SQLDATETIME |
smalldatetime |
SQLDATETIM4 |
decimal |
SQLDECIMAL |
numeric |
SQLNUMERIC |
float |
SQLFLT8 |
real |
SQLFLT4 |
int |
SQLINT |
bigint |
SQLBIGINT |
smallint |
SQLSMALLINT |
tinyint |
SQLTINYINT |
money |
SQLMONEY |
smallmoney |
SQLMONEY4 |
bit |
SQLBIT |
uniqueidentifier |
SQLUNIQUEID |
sql_variant |
SQLVARIANT |
timestamp |
SQLBINARY |
UDT (使用者自訂的資料類型) |
SQLUDT |
1 以字元格式儲存的資料檔案會採用 char 做為檔案儲存類型。因此,對於字元資料檔案,SQLCHAR 是唯一會出現在格式檔案中的資料類型。
2 您無法將資料大量匯入具有 DEFAULT 值的 text、ntext 及 image 資料行。
檔案儲存類型的額外考量
當您將 SQL Server 執行個體的資料大量匯出到資料檔案時:
- 您永遠可以將檔案儲存類型指定為 char。
- 如果您輸入的檔案儲存類型代表無效的隱含轉換,則 bcp 會失敗;例如,雖然可以針對 smallint 資料指定 int,如果您針對 int 資料指定 smallint,將導致溢位錯誤。
- 若 float、money、datetime 或 int 等非字元資料類型儲存為其資料庫類型時,資料會以 SQL Server 原生格式寫入資料檔案中。
![]() |
---|
您以互動方式指定 bcp 命令中所有的欄位後,命令會提示您將每個欄位的回應儲存在非 XML 格式的檔案中。如需非 XML 格式檔案的詳細資訊,請參閱<瞭解非 XML 格式檔案>。 |
請參閱
概念
使用 bcp 指定欄位長度
指定欄位和資料列結束字元
在資料檔中指定前置詞長度
字元格式資料的儲存