SQL Server大容量匯入匯出

2021-05-18 15:17:35 字數 1984 閱讀 4236

今天公司要做大容量資料轉移,所以研究了下這方面的知識。

主要是從將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中新建你要建的資料庫,這時是空資料庫...