SQL Server BCP使用小結

2021-09-06 03:48:14 字數 3687 閱讀 6149

用法: bcp   資料檔案

[-m 最大錯誤數][

-f 格式化檔案][

-e 錯誤檔案][

-f 首行][

-l 末行][

-b 批大小][

-n 本機型別][

-c 字元型別][

-w 寬字元型別][

-n 將非文字保持為本機型別][

-v 檔案格式版本][

-q 帶引號的識別符號][

-c **頁說明符][

-t 字段終止符][

-r 行終止符][

-i 輸入檔案][

-o 輸出檔案][

-a 資料報大小][

-s 伺服器名稱][

-u 使用者名稱][

-p 密碼][

-t 可信連線][

-v 版本][

-r 允許使用區域設定][

-k 保留空值][

-e 保留標識值][

-h"載入提示"][

-x 生成xml 格式化檔案]--

不利用格式化檔案的匯入匯出(以下示例皆省略了-s引數,因為是在本機,又是預設例項)

--簡單匯出表

exec

master..xp_cmdshell 

'bcp db_oa.dbo.t_user_list  out c:\a.xls -c -t'--

"-t"信任連線

exec

master..xp_cmdshell 

'bcp db_oa.dbo.t_user_list  out c:\a.txt -c -usa -p***xx'--

過濾匯出表

exec

master..xp_cmdshell 

'bcp "select top 3 * from db_oa.dbo.t_user_list"  queryout c:\a.txt -c -t'--

簡單匯入表

exec

master..xp_cmdshell 

'bcp db_oa.dbo.t_user_list_2  in c:\a.txt -c -t

'exec

master..xp_cmdshell 

'bcp db_oa.dbo.t_user_list_2  in c:\a.txt -c -t -e'--

加上"-e"啟用identity_insert on

--下面是利用xml格式化檔案進行資料的匯入!

--建立測試表

usedb_oa;

gocreate

table

mytestformatfiles (

col1 

smallint

,col2 

nvarchar(50

),col3 

nvarchar(50

),col4 

nvarchar(50

));go--

輸出xml格式化檔案

--說明一下:-t","是指定字段分隔符,稍後我們會講到

exec

master..xp_cmdshell 

'bcp db_oa..mytestformatfiles format nul -c -t"," -x -f c:\mytestformatfiles.xml -t'/*

格式化後的檔案內容如下:

<?xml version="1.0"?>

這裡我們對檔案關鍵字稍作解釋:

父節點中的內容是對原始檔的格式化定義,即你要匯入的資料檔案

不難看出,我們最常修改的就是terminator,可以修改為"|"等你需要的分隔符,注意最後乙個欄位的分隔符為"\r\n"

該父節點的內容是目標資料的格式化定義,即你需要匯入資料檔案的地方

*/--

下面我們建立源資料檔案,將以下內容貼上到我們指定的資料檔案c:\mytestformatfiles-c.txt中

/*10,field2,field3,field4

15,field2,field3,field4

46,field2,field3,field4

58,field2,field3,field4

*/--

利用bcp格式化檔案匯入資料

exec

master..xp_cmdshell 

'bcp db_oa..mytestformatfiles in c:\mytestformatfiles-c.txt -f c:\mytestformatfiles.xml -t'--

檢視一下匯入的資料

select

*from

mytestformatfiles

/*col1    col2    col3    col4

10    field2    field3    field4

15    field2    field3    field4

46    field2    field3    field4

58    field2    field3    field4

*/--

使用bulk insert匯入資料

usedb_oa;

godelete

mytestformatfiles;

gobulk

insert

mytestformatfiles 

from

'c:\mytestformatfiles-c.txt

'with

(formatfile ='

c:\mytestformatfiles.xml');

goselect

*from

mytestformatfiles;

go/*

col1    col2    col3    col4

10    field2    field3    field4

15    field2    field3    field4

46    field2    field3    field4

58    field2    field3    field4

*/--

使用openrowset 大容量行集提供程式匯入

usedb_oa;

delete

mytestformatfiles;

goinsert

into

mytestformatfiles

select

*from

openrowset

(bulk

'c:\mytestformatfiles-c.txt',

formatfile='

c:\mytestformatfiles.xml') 

ast1 ;

goselect

*from

mytestformatfiles;

go/*

col1    col2    col3    col4

10    field2    field3    field4

15    field2    field3    field4

46    field2    field3    field4

58    field2    field3    field4

*/--

刪除測試表

drop

table

mytestformatfiles

sql server BCP 工具的使用

bcp的用法很多,詳細用法各位可以參看 1 2 3 msdn 下面我只說一下bcp的乙個很簡單的用法 在查詢分析器中執行下面這條語句 exec master.xp cmdshell bcp.in c t,s u p 其中 exec master.xp cmdshell master.xp cmdsh...

SQLServer BCP 匯入匯出資料

bcp 實用工具可以在 sql server 例項和使用者指定格式的資料檔案間大容量複製資料。使用 bcp 實用工具可以將大量新行匯入 sql server 表,或將表資料匯入資料檔案。除非與 queryout 選項一起使用,否則使用該實用工具不需要了解 transact sql 知識。若要將資料匯...

VI使用小技巧

1 替換某一字串 s old word new word g 在整個檔案中將old word替換為new word 2 不進入vi編輯器將檔案中的某一字串替換掉 sed s 111 aaa g 1.txt 2.txt 將1.txt中所有的111替換為aaa,修改後的檔案寫入2.txt sed s 1...