使用 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)