今天公司要做大容量資料轉移,所以研究了下這方面的知識。
主要是從將db1的資料表轉移到db2,考慮到效率決定用bcp來做,這個工具還是蠻不錯的。
其實本來想用複製功能的,那個有點麻煩,dts太慢了。
下面就來說說bcp這個工具吧
bcp 實用工具在 microsoft® sql server™ 2000 例項和資料檔案之間以使用者指定的格式複製資料。
語法bcp | "query"}
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]"]
雖然這麼多引數,常用到的並不多
eg: 在系統cmd下
1、將 table_1 的資料輸出到 data_1.txt 裡
e:/temp>bcp db1.dbo.table_1 out data_1.txt -c -t "|" -r /n -u sa -p password
2、然後將 data_1.txt 複製到db2所在的server
3、將 data_1.txt 的資料匯入到db2
e:/temp>bcp db2.dbo.table_2 in data_1.txt -b 5000 -c -t ",|" -r /n -u sa -p password
這一步也可以用 sql查詢分析器 執行
bulk insert tmk_order_test1
from 'e:/temp/data_6.txt'
with
(datafiletype = 'char',
fieldterminator = ',|',
rowterminator = '/n' ,
fire_triggers)ok
下面來說一說用到的引數
query
是返回乙個結果集的 transact-sql 查詢。如果查詢返回多個結果集,例如指定 compute 子句的 select 語句,只有第乙個結果集將複製到資料檔案,隨後的結果集被忽略。使用雙引號引起查詢語句,使用單引號引起查詢語句中嵌入的任何內容。在從查詢中大容量複製資料時,還必須指定 queryout。
in | out | queryout | format
指定大容量複製的方向。in 是從檔案複製到資料庫表或檢視,out 是指從資料庫表或檢視複製到檔案。只有從查詢中大容量複製資料時,才必須指定 queryout。根據指定的選項(-n、-c、-w、-6 或 -n)以及表或檢視分隔符,format 將建立乙個格式檔案。如果使用 format,則還必須指定 -f 選項。
大容量複製選項
bcp 實用工具開關
bulk insert 子句
字元模式格式
-cdatafiletype= 'char'
字段終止符
-tfieldterminator
行終止符
-rrowterminator
-b batch_size
指定所複製的每批資料中的行數。每個批處理作為乙個事務複製至。sql server 提交或回滾(在失敗時)每個批處理的事務。預設情況下,指定的資料檔案中的所有資料都作為一批覆制。請不要與 -h "rows_per_batch = bb" 選項一起使用。
大容量匯入語句BULK INSERT INTO
今天有同事要用,寫了個demo,順便整理了下 sql語句如下 insert into edm recipientstmp rcid,rcemail,rc groupid,rc createuid,rccreatedate select 1,email,1,1,getdate from openrow...
Python requirement 匯入匯出包
在使用python的時候,需要把安裝的package通過requirements.txt匯出來,乙個命令便可部署新環境。requirements.txt,是用於記錄所有依賴包及其精確的版本號。自動生成requirement.txt命令 pip freeze requirements.txt執行成功後...
mysql 匯入匯出大容量的資料庫
匯入資料庫 1,將要匯入的.sql檔案移至bin檔案下,這樣的路徑比較方便 2,同上面匯出的第1步 3,進入mysql mysql u 使用者名稱 p 如我輸入的命令列 mysql u root p 輸入同樣後會讓你輸入ysql的密碼 4,在mysql front中新建你要建的資料庫,這時是空資料庫...