使用 bcp 指定檔案儲存類型 (SQL Server)
檔案儲存類型 描述資料如何儲存在資料檔中。 資料可以依其資料庫資料表類型 (原生格式)、依其字元表示 (字元格式),或者依支援隱含轉換的任何資料類型匯出至資料檔;例如,將 smallint
複製為 int
。 使用者自訂資料類型會依其基底類型匯出。
檔案儲存類型的 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
字元格式的類型,以及針對以原生資料類型格式儲存的資料,視需要指定其中一種檔案儲存類型:檔案儲存類型 在命令提示字元中輸入 char
1c
[har
]varchar
c[har]
nchar
w
nvarchar
w
text
2T
[ext
]ntext2
W
binary
x
varbinary
x
image
2I
[mage
]datetime
d[ate] smalldatetime
D
time
te
date
de
datetime2
d2
datetimeoffset
do
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未來
ntext
版本的 SQL Server將會移除 、text
和image
資料類型。 請避免在新的開發工作中使用這些資料類型,並規劃修改目前使用這些資料類型的應用程式。 請改用nvarchar(max)
、varchar(max)
和varbinary(max)
。
原生檔案儲存類型
每個原生檔案儲存類型都記錄於格式檔案內,做為對應的主機檔案資料類型。
檔案儲存類型 | 主檔案資料類型 |
---|---|
char 1 |
SQLCHAR |
varchar |
SQLCHAR |
nchar |
SQLNCHAR |
nvarchar |
SQLNCHAR |
text 2 |
SQLCHAR |
ntext 2 |
SQLNCHAR |
binary |
SQLBINARY |
varbinary |
SQLBINARY |
image 2 |
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 您無法將資料大量匯入具有 text
DEFAULT 值的 、 ntext
和資料 image
行。
檔案儲存類型的額外考量
當您將 SQL Server 執行個體的資料大量匯出到資料檔案時:
您永遠可以將檔案儲存類型指定為
char
。如果您輸入的檔案儲存類型代表不正確隱含轉換, bcp 會失敗;例如,雖然您可以指定
int
smallint
資料,但如果您指定smallint
int
資料,則會產生溢位錯誤。當 、
money
、datetime
或int
等float
非字元資料類型儲存為其資料庫類型時,資料會以原生格式SQL Server寫入資料檔案。注意
以互動方式在 bcp 命令中指定所有欄位之後,此命令會提示您將每個欄位的回應以非 XML 格式的檔案加以儲存。 如需非 XML 格式檔案的詳細資訊,請參閱非 XML 格式檔案 (SQL Server)。
另請參閱
bcp 公用程式
資料類型 (Transact-SQL)
使用 bcp 指定欄位長度 (SQL Server)
指定欄位與資料列結束字元 (SQL Server)
使用 bcp 指定資料檔的前置長度 (SQL Server)