bcp 實用工具在 Microsoft® SQL Server
;
實例和數據文件之間以用戶指定的格式復制數據
語法
bcp {[[database_name
][owner]
]{table_name | view_name} |
query
}
{in | out | queryout | format} data_file
[
m max_errors] [
f format_file] [
e err_file]
[
F first_row] [
L last_row] [
b batch_size]
[
n] [
c] [
w] [
N] [
V (
|
|
)] [
]
[
q] [
C code_page] [
t field_term] [
r row_term]
[
i input_file] [
o output_file] [
a packet_size]
[
S server_name[\instance_name]] [
U login_id] [
P password]
[
T] [
v] [
R] [
k] [
E] [
h
hint [
n]
]
database_name
指定的表或視圖所在數據庫的名稱
如果未指定
則為用戶默認數據庫
owner
表或視圖所有者的名稱
如果執行大容量復制操作的用戶擁有指定的表或視圖
則 owner 是可選的
如果沒有指定 owner 並且執行大容量復制操作的用戶不擁有指定的表或視圖
則 Microsoft® SQL Server
;
將返回錯誤信息並取消大容量復制操作
table_name
是將數據復制到 SQL Server 時 (in) 的目的表名
以及從 SQL Server 復制數據時 (out) 的源表名
view_name
是將數據復制到 SQL Server 時 (in) 的目的視圖名
以及從 SQL Server 復制數據時 (out) 的源視圖名
只有其中所有列都引用同一個表的視圖才能用作目的視圖
有關將數據復制到視圖的限制的更多信息
請參見 INSERT
Query
是返回一個結果集的 Transact
SQL 查詢
如果查詢返回多個結果集
例如指定 COMPUTE 子句的 SELECT 語句
只有第一個結果集將復制到數據文件
隨後的結果集被忽略
使用雙引號引起查詢語句
使用單引號引起查詢語句中嵌入的任何內容
在從查詢中大容量復制數據時
還必須指定 queryout
in | out | queryout | format
指定大容量復制的方向
in 是從文件復制到數據庫表或視圖
out 是指從數據庫表或視圖復制到文件
只有從查詢中大容量復制數據時
才必須指定 queryout
根據指定的選項(
n
c
w
或
N)以及表或視圖分隔符
format 將創建一個格式文件
如果使用 format
則還必須指定
f 選項
說明 Microsoft SQL Server
中的 bcp 實用工具不支持大容量復制到包含 sql_variant 或 bigint 數據類型的表
data_file
大容量復制表或視圖到磁盤(或者從磁盤復制)時所用數據文件的完整路徑
當將數據大容量復制到 SQL Server 時
此數據文件包含將復制到指定表或視圖的數據
當從 SQL Server 大容量復制數據時
該數據文件包含從表或視圖復制的數據
路徑可以有
到
個字符
m max_errors
指定在大容量復制操作取消之前可能產生的錯誤的最大數目
bcp 無法復制的每一行都將被忽略並計為一個錯誤
如果沒有包括該選項
則默認為
f format_file
指定格式文件的完整路徑
該格式文件包含以前在同一個表或視圖上使用 bcp 時的存儲響應
當使用由 format 選項所創建的格式文件大容量復制入或復制出數據時
使用此選項
格式文件的創建是可選的
在提示幾個格式問題之後
bcp 將提示是否在格式文件中保存回答
默認文件名為 Bcp
fmt
大容量復制數據時
bcp 可引用一個格式文件
因此不必重新交互輸入以前的回答
如果未使用此選項
也沒有指定 –n
c
w
或
N
則 bcp 將提示輸入格式信息
e err_file
指定錯誤文件的完整路徑
此錯誤文件用於存儲 bcp 無法從文件傳輸到數據庫的所有行
來自 bcp 的錯誤信息將發送到用戶工作站
如果未使用此選項
則不創建錯誤文件
F first_row
指定要大容量復制的第一行的序數
默認值是
表示在指定數據文件的第一行
L last_row
指定要大容量復制的最後一行的序數
默認值是
表示指定數據文件中的最後一行
b batch_size
指定所復制的每批數據中的行數
每個批處理作為一個事務復制至服務器
SQL Server 提交或回滾(在失敗時)每個批處理的事務
默認情況下
指定的數據文件中的所有數據都作為一批復制
請不要與
h
ROWS_PER_BATCH = bb
選項一起使用
n
使用數據的本機(數據庫)數據類型執行大容量復制操作
此選項不提示輸入每一字段
它將使用本機值
c
使用字符數據類型執行大容量復制操作
此選項不提示輸入每一字段
它使用 char 作為存儲類型
不帶前綴
\t(制表符)作為字段分隔符
\n(換行符)作為行終止符
w
使用 Unicode 字符執行大容量復制操作
此選項不提示輸入每一字段
它使用 nchar 作為存儲類型
不帶前綴
\t(制表符)作為字段分隔符
\n(換行符)作為行終止符
不能在 SQL Server
版或更早版本中使用
N
對非字符數據使用數據的本機(數據庫)數據類型和對字符數據使用 Unicode 字符類型執行大容量復制操作
這是可替代
w 選項的性能更高的選項
其目的是使用數據文件將數據從一個 SQL Server 傳輸到另一個 SQL Server 中
它不提示輸入每一字段
在需要傳輸包含 ANSI 擴展字符的數據以及想利用本機模式的性能時
可以使用這一選項
不能在 SQL Server
版或更早版本中使用
N 選項
V (
|
|
)
使用 SQL Server 早期版本中的數據類型執行大容量復制操作
此選項與字符 (
c) 或本機 (
n) 格式一起使用
此選項並不提示輸入每一字段
它使用默認值
例如
若要將 SQL Server
中的 bcp 實用工具所支持(但 ODBC 不再支持)的日期格式大容量復制到 SQL Server
可使用
V
參數
重要 將數據從 SQL Server 大容量復制到數據文件時
即使指定了 –V
bcp 實用工具也不會為任何 datetime 或 smalldatetime 數據生成 SQL Server
或 SQL Server
的日期格式
日期將始終以 ODBC 格式寫入
另外
由於 SQL Server
版或更早版本不支持可為空的 bit 數據
因此 bit 列中的空值寫為值
使用 SQL Server
或 SQL Server
數據類型執行大容量復制操作
僅為保持向後兼容性
改為使用 –V 選項
q
在 bcp 實用工具和 SQL Server 實例的連接中執行 SET QUOTED_IDENTIFIERS ON 語句
使用該選項指定包含空格或引號的數據庫
所有者
表或視圖的名稱
將由三部分組成的整個表名或視圖名引在雙引號 (
) 中
C code_page
僅為保持向後兼容性
作為代替
請在格式文件或交互式 bcp 中為每一列指定一個排序規則名
指定數據文件中的數據代碼頁
只有當數據中包含字符值大於
或小於
的 char
varchar 或 text 列時
code_page 才有用
t field_term
指定字段終止符
默認的字段終止符是 \t(制表符)
使用此參數替代默認字段終止符
r row_term
指定行終止符
默認的行終止符是 \n(換行符)
使用此參數替代默認行終止符
i input_file
指定響應文件的名稱
使用交互模式(未指定 –n
c
w
或
N)執行大容量復制時
響應文件包含對每一字段命令提示問題的響應
o output_file
指定接收 bcp 輸出(從命令提示重定向)的文件的名稱
a packet_size
指定發送到和發送自服務器的每個網絡數據包的字節數
可以使用 SQL Server 企業管理器(或 sp_configure 系統存儲過程)設置服務器配置選項
但是
使用此選項可以單個地替代服務器配置選項
packet_size 可以設置為
到
字節
默認值為
數據包大小的增加能夠提高大容量復制操作的性能
如果要求一個較大的數據包而得不到
則使用默認設置
bcp 生成的性能統計顯示出所使用數據包的大小
S server_name[\instance_name]
指定要連接到的 SQL Server 實例
指定 server_name 以連接該服務器上的 SQL Server 默認實例
指定 server_name\instance_name 以連接到該服務器上的 SQL Server
命名實例
如果未指定服務器
則 bcp 連接到本地計算機上的 SQL Server 默認實例
從網絡上的遠程計算機執行 bcp 時
要求此選項
U login_id
指定用於連接到 SQL Server 的登錄 ID
P password
指定登錄 ID 的密碼
如果未使用此選項
則 bcp 將提示輸入密碼
如果不帶密碼將此選項用於命令提示行末尾
則 bcp 將使用默認密碼 (NULL)
T
指定 bcp 使用網絡用戶的安全憑據
通過信任連接連接到 SQL Server
不需要 login_id 和 password
v
報告 bcp 實用工具的版本號和版權
R
指定使用為客戶端計算機的區域設置定義的區域格式
將貨幣
日期和時間數據大容量復制到 SQL Server 中
默認情況下
將會忽略區域設置
From:http://tw.wingwit.com/Article/os/xtgl/201311/9556.html