Posted on 2007-04-28 15:49
my 閱讀(3712)
評論(0) 編輯 收藏 所屬分類:
數(shù)據(jù)庫方面
bcp命令詳解(sybase)
bcp 實(shí)用工具在 Microsoft? SQL Server? 2000 實(shí)例和數(shù)據(jù)文件之間以用戶指定的格式復(fù)制數(shù)據(jù)。
語法
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 (60 | 65 | 70)] [-6]
[-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]"]
參數(shù)
database_name
指定的表或視圖所在數(shù)據(jù)庫的名稱。如果未指定,則為用戶默認(rèn)數(shù)據(jù)庫。
owner
表或視圖所有者的名稱。如果執(zhí)行大容量復(fù)制操作的用戶擁有指定的表或視圖,則 owner 是可選的。如果沒有指定 owner 并且執(zhí)行大容量復(fù)制操作的用戶不擁有指定的表或視圖,則 Microsoft? SQL Server? 2000 將返回錯誤信息并取消大容量復(fù)制操作。
table_name
是將數(shù)據(jù)復(fù)制到 SQL Server 時 (in) 的目的表名,以及從 SQL Server 復(fù)制數(shù)據(jù)時 (out) 的源表名。
view_name
是將數(shù)據(jù)復(fù)制到 SQL Server 時 (in) 的目的視圖名,以及從 SQL Server 復(fù)制數(shù)據(jù)時 (out) 的源視圖名。只有其中所有列都引用同一個表的視圖才能用作目的視圖。有關(guān)將數(shù)據(jù)復(fù)制到視圖的限制的更多信息,請參見 INSERT。
Query
是返回一個結(jié)果集的 Transact-SQL 查詢。如果查詢返回多個結(jié)果集,例如指定 COMPUTE 子句的 SELECT 語句,只有第一個結(jié)果集將復(fù)制到數(shù)據(jù)文件,隨后的結(jié)果集被忽略。使用雙引號引起查詢語句,使用單引號引起查詢語句中嵌入的任何內(nèi)容。在從查詢中大容量復(fù)制數(shù)據(jù)時,還必須指定 queryout。
in | out | queryout | format
指定大容量復(fù)制的方向。in 是從文件復(fù)制到數(shù)據(jù)庫表或視圖,out 是指從數(shù)據(jù)庫表或視圖復(fù)制到文件。只有從查詢中大容量復(fù)制數(shù)據(jù)時,才必須指定 queryout。根據(jù)指定的選項(xiàng)(-n、-c、-w、-6 或 -N)以及表或視圖分隔符,format 將創(chuàng)建一個格式文件。如果使用 format,則還必須指定 -f 選項(xiàng)。
說明 Microsoft SQL Server 6.5 中的 bcp 實(shí)用工具不支持大容量復(fù)制到包含 sql_variant 或 bigint 數(shù)據(jù)類型的表。
data_file
大容量復(fù)制表或視圖到磁盤(或者從磁盤復(fù)制)時所用數(shù)據(jù)文件的完整路徑。當(dāng)將數(shù)據(jù)大容量復(fù)制到 SQL Server 時,此數(shù)據(jù)文件包含將復(fù)制到指定表或視圖的數(shù)據(jù)。當(dāng)從 SQL Server 大容量復(fù)制數(shù)據(jù)時,該數(shù)據(jù)文件包含從表或視圖復(fù)制的數(shù)據(jù)。路徑可以有 1 到 255 個字符。
-m max_errors
指定在大容量復(fù)制操作取消之前可能產(chǎn)生的錯誤的最大數(shù)目。bcp 無法復(fù)制的每一行都將被忽略并計為一個錯誤。如果沒有包括該選項(xiàng),則默認(rèn)為 10。
-f format_file
指定格式文件的完整路徑,該格式文件包含以前在同一個表或視圖上使用 bcp 時的存儲響應(yīng)。當(dāng)使用由 format 選項(xiàng)所創(chuàng)建的格式文件大容量復(fù)制入或復(fù)制出數(shù)據(jù)時,使用此選項(xiàng)。格式文件的創(chuàng)建是可選的。在提示幾個格式問題之后,bcp 將提示是否在格式文件中保存回答。默認(rèn)文件名為 Bcp.fmt。大容量復(fù)制數(shù)據(jù)時,bcp 可引用一個格式文件,因此不必重新交互輸入以前的回答。如果未使用此選項(xiàng),也沒有指定 –n、-c、-w、-6 或 -N,則 bcp 將提示輸入格式信息。
-e err_file
指定錯誤文件的完整路徑,此錯誤文件用于存儲 bcp 無法從文件傳輸?shù)綌?shù)據(jù)庫的所有行。來自 bcp 的錯誤信息將發(fā)送到用戶工作站。如果未使用此選項(xiàng),則不創(chuàng)建錯誤文件。
-F first_row
指定要大容量復(fù)制的第一行的序數(shù)。默認(rèn)值是 1,表示在指定數(shù)據(jù)文件的第一行。
-L last_row
指定要大容量復(fù)制的最后一行的序數(shù)。默認(rèn)值是 0,表示指定數(shù)據(jù)文件中的最后一行。
-b batch_size
指定所復(fù)制的每批數(shù)據(jù)中的行數(shù)。每個批處理作為一個事務(wù)復(fù)制至服務(wù)器。SQL Server 提交或回滾(在失敗時)每個批處理的事務(wù)。默認(rèn)情況下,指定的數(shù)據(jù)文件中的所有數(shù)據(jù)都作為一批復(fù)制。請不要與 -h "ROWS_PER_BATCH = bb" 選項(xiàng)一起使用。
-n
使用數(shù)據(jù)的本機(jī)(數(shù)據(jù)庫)數(shù)據(jù)類型執(zhí)行大容量復(fù)制操作。此選項(xiàng)不提示輸入每一字段,它將使用本機(jī)值。
-c
使用字符數(shù)據(jù)類型執(zhí)行大容量復(fù)制操作。此選項(xiàng)不提示輸入每一字段;它使用 char 作為存儲類型,不帶前綴,\t(制表符)作為字段分隔符,\n(換行符)作為行終止符。
-w
使用 Unicode 字符執(zhí)行大容量復(fù)制操作。此選項(xiàng)不提示輸入每一字段;它使用 nchar 作為存儲類型,不帶前綴,\t(制表符)作為字段分隔符,\n(換行符)作為行終止符。不能在 SQL Server 6.5 版或更早版本中使用。
-N
對非字符數(shù)據(jù)使用數(shù)據(jù)的本機(jī)(數(shù)據(jù)庫)數(shù)據(jù)類型和對字符數(shù)據(jù)使用 Unicode 字符類型執(zhí)行大容量復(fù)制操作。這是可替代 -w 選項(xiàng)的性能更高的選項(xiàng),其目的是使用數(shù)據(jù)文件將數(shù)據(jù)從一個 SQL Server 傳輸?shù)搅硪粋€ SQL Server 中。它不提示輸入每一字段。在需要傳輸包含 ANSI 擴(kuò)展字符的數(shù)據(jù)以及想利用本機(jī)模式的性能時,可以使用這一選項(xiàng)。不能在 SQL Server 6.5 版或更早版本中使用 -N 選項(xiàng)。
-V (60 | 65 | 70)
使用 SQL Server 早期版本中的數(shù)據(jù)類型執(zhí)行大容量復(fù)制操作。此選項(xiàng)與字符 (-c) 或本機(jī) (-n) 格式一起使用。此選項(xiàng)并不提示輸入每一字段,它使用默認(rèn)值。例如,若要將 SQL Server 6.5 中的 bcp 實(shí)用工具所支持(但 ODBC 不再支持)的日期格式大容量復(fù)制到 SQL Server 2000,可使用 -V 65 參數(shù)。
重要 將數(shù)據(jù)從 SQL Server 大容量復(fù)制到數(shù)據(jù)文件時,即使指定了 –V,bcp 實(shí)用工具也不會為任何 datetime 或 smalldatetime 數(shù)據(jù)生成 SQL Server 6.0 或 SQL Server 6.5 的日期格式。日期將始終以 ODBC 格式寫入。另外,由于 SQL Server 6.5 版或更早版本不支持可為空的 bit 數(shù)據(jù),因此 bit 列中的空值寫為值 0。
-6
使用 SQL Server 6.0 或 SQL Server 6.5 數(shù)據(jù)類型執(zhí)行大容量復(fù)制操作。僅為保持向后兼容性。改為使用 –V 選項(xiàng)。
-q
在 bcp 實(shí)用工具和 SQL Server 實(shí)例的連接中執(zhí)行 SET QUOTED_IDENTIFIERS ON 語句。使用該選項(xiàng)指定包含空格或引號的數(shù)據(jù)庫、所有者、表或視圖的名稱。將由三部分組成的整個表名或視圖名引在雙引號 (" ") 中。
-C code_page
僅為保持向后兼容性。作為代替,請在格式文件或交互式 bcp 中為每一列指定一個排序規(guī)則名。
指定數(shù)據(jù)文件中的數(shù)據(jù)代碼頁。只有當(dāng)數(shù)據(jù)中包含字符值大于 127 或小于 32 的 char、varchar 或 text 列時,code_page 才有用。
代碼頁值 描述
ACP ANSI/Microsoft Windows? (ISO 1252)。
OEM 客戶程序使用的默認(rèn)代碼頁。如果未指定 -C,則這是 bcp 使用的默認(rèn)代碼頁。
RAW 不發(fā)生從一個代碼頁到另一個代碼頁的轉(zhuǎn)換。因?yàn)椴话l(fā)生轉(zhuǎn)換,所以這是最快的選項(xiàng)。
<值> 特定的代碼頁號碼,例如 850。
-t field_term
指定字段終止符。默認(rèn)的字段終止符是 \t(制表符)。使用此參數(shù)替代默認(rèn)字段終止符。
-r row_term
指定行終止符。默認(rèn)的行終止符是 \n(換行符)。使用此參數(shù)替代默認(rèn)行終止符。
-i input_file
指定響應(yīng)文件的名稱,使用交互模式(未指定 –n、-c、-w、-6 或 -N)執(zhí)行大容量復(fù)制時,響應(yīng)文件包含對每一字段命令提示問題的響應(yīng)。
-o output_file
指定接收 bcp 輸出(從命令提示重定向)的文件的名稱。
-a packet_size
指定發(fā)送到和發(fā)送自服務(wù)器的每個網(wǎng)絡(luò)數(shù)據(jù)包的字節(jié)數(shù)。可以使用 SQL Server 企業(yè)管理器(或 sp_configure 系統(tǒng)存儲過程)設(shè)置服務(wù)器配置選項(xiàng)。但是,使用此選項(xiàng)可以單個地替代服務(wù)器配置選項(xiàng)。packet_size 可以設(shè)置為 4096 到 65535 字節(jié),默認(rèn)值為 4096。
數(shù)據(jù)包大小的增加能夠提高大容量復(fù)制操作的性能。如果要求一個較大的數(shù)據(jù)包而得不到,則使用默認(rèn)設(shè)置。bcp 生成的性能統(tǒng)計顯示出所使用數(shù)據(jù)包的大小。
-S server_name[\instance_name]
指定要連接到的 SQL Server 實(shí)例。指定 server_name 以連接該服務(wù)器上的 SQL Server 默認(rèn)實(shí)例。指定 server_name\instance_name 以連接到該服務(wù)器上的 SQL Server 2000 命名實(shí)例。如果未指定服務(wù)器,則 bcp 連接到本地計算機(jī)上的 SQL Server 默認(rèn)實(shí)例。從網(wǎng)絡(luò)上的遠(yuǎn)程計算機(jī)執(zhí)行 bcp 時,要求此選項(xiàng)。
-U login_id
指定用于連接到 SQL Server 的登錄 ID。
-P password
指定登錄 ID 的密碼。如果未使用此選項(xiàng),則 bcp 將提示輸入密碼。如果不帶密碼將此選項(xiàng)用于命令提示行末尾,則 bcp 將使用默認(rèn)密碼 (NULL)。
-T
指定 bcp 使用網(wǎng)絡(luò)用戶的安全憑據(jù),通過信任連接連接到 SQL Server。不需要 login_id 和 password。
-v
報告 bcp 實(shí)用工具的版本號和版權(quán)。
-R
指定使用為客戶端計算機(jī)的區(qū)域設(shè)置定義的區(qū)域格式,將貨幣、日期和時間數(shù)據(jù)大容量復(fù)制到 SQL Server 中。默認(rèn)情況下,將會忽略區(qū)域設(shè)置。
-k
指定在大容量復(fù)制操作中空列應(yīng)保留一個空值,而不是對插入的列賦予默認(rèn)值。[/quote]