真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

SQLServer數(shù)據(jù)導入導出工具BCP怎么用

小編給大家分享一下SQL Server數(shù)據(jù)導入導出工具BCP怎么用,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

創(chuàng)新互聯(lián)建站專注于武寧網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供武寧營銷型網(wǎng)站建設(shè),武寧網(wǎng)站制作、武寧網(wǎng)頁設(shè)計、武寧網(wǎng)站官網(wǎng)定制、小程序開發(fā)服務(wù),打造武寧網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供武寧網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

BCP是SQL Server中負責導入導出數(shù)據(jù)的一個命令行工具,它是基于DB-Library的,并且能以并行的方式高效地導入導出大批量的數(shù)據(jù)。BCP可以將數(shù)據(jù)庫的表或視圖直接導出,也能通過SELECT FROM語句對表或視圖進行過濾后導出。在導入導出數(shù)據(jù)時,可以使用默認值或是使用一個格式文件將文件中的數(shù)據(jù)導入到數(shù)據(jù)庫或?qū)?shù)據(jù)庫中的數(shù)據(jù)導出到文件中。

下面將詳細討論如何利用  BCP導入導出數(shù)據(jù)。

 1. BCP的主要參數(shù)介紹

 BCP共有四個動作可以選擇。

 (1) 導入。

這個動作使用  in命令完成,后面跟需要導入的文件名。

例如:

bcp sxculture.dbo.show_t_type in c:\temp\show_t_type -U sa  -P 111111      -Szhouyx -c -Jcp850

 (2) 導出。

這個動作使用  out命令完成,后面跟需要導出的文件名。

例如:

bcp sxculture.dbo.Cul_MuseumData out d:\Cul_MuseumData_out -Usa -P111111 -Szhouyx -c

 (3) 使用SQL語句導出。

這個動作使用  queryout命令完成,它跟out類似,只是數(shù)據(jù)源不是表或視圖名,而是SQL語句。

 (4) 導出格式文件。

這個動作使用  format命令完成,后而跟格式文件名。

下面介紹一些常用的選項:

 -f format_file

 format_file表示格式文件名。這個選項依賴于上述的動作,如果使用的是in或out,format_file表示已經(jīng)存在的格式文件,如果使用的是format則表示是要生成的格式文件。

 -x

這個選項要和  -f format_file配合使用,以便生成xml格式的格式文件。

 -F first_row

指定從被導出表的哪一行導出,或從被導入文件的哪一行導入。

 -L last_row

指定被導出表要導到哪一行結(jié)束,或從被導入文件導數(shù)據(jù)時,導到哪一行結(jié)束。

 -c

在使用密碼登錄時需要將  -U后的用戶名和-P后的密碼加上雙引號。

注:  BCP除了可以在控制臺執(zhí)行外,還可以通過調(diào)用SQL Server的一個系統(tǒng)存儲過程xp_cmdshell以SQL語句的方式運行BCP。如上述第一條命令可改寫為

 EXEC master..xp_cmdshell 'BCP AdventureWorks.sales.currency out c:currency1.txt -c -U"sa" -P"password"'

執(zhí)行  xp_cmdshell后,返回信息以表的形式輸出。為了可以方便地在SQL中執(zhí)行BCP,下面的命令都使用xp_cmdshell執(zhí)行BCP命令。

 (2) 對要導出的表進行過濾。

 BCP不僅可以接受表名或視圖名做為參數(shù),也可以接受SQL做為參數(shù)。通過SQL語句可以對要導出的表進行過濾,然后導出過濾后的記錄。

 EXEC master..xp_cmdshell 'BCP "SELECT TOP 20 * FROM AdventureWorks.sales.currency" queryout c:currency2.txt -c -U"sa" -P"password"'

 BCP還可以通過簡單地設(shè)置選項對導出的行進行限制。

 EXEC master..xp_cmdshell 'BCP "SELECT TOP 20 * FROM AdventureWorks.sales.currency" queryout c:currency2.txt -F 10 -L 13 -c -U"sa" -P"password"'

這條命令使用了兩個參數(shù)  -F 10和-L 13,表示從SELECT TOP 20 * FROM AdventureWorks.sales.currency所查出來的結(jié)果中取第10條到13條記錄進行導出。

 3. 如何使用BCP導出格式文件

 BCP不僅可以根據(jù)表、視圖導入導出數(shù)據(jù),還可以配合格式文件對導入導出數(shù)據(jù)進行限制。格式文件以純文本文件形式存在,分為一般格式和xml格式。用戶可以手工編寫格式文件,也可以通過BCP命令根據(jù)表、視圖自動生成格式文件。

 EXEC master..xp_cmdshell 'BCP AdventureWorks.sales.currency format nul -f c:currency_format1.fmt -c -T'

上述命令將  currency表的結(jié)構(gòu)生成了一個格式文件currency_format1.fmt,下面是這個格式文件的內(nèi)容。

 9.0

 3

 1 SQLCHAR 0 6 "  " 1 CurrencyCode SQL_Latin1_General_CP1_CI_AS

 2 SQLCHAR 0 100 "  " 2 Name SQL_Latin1_General_CP1_CI_AS

 3 SQLCHAR 0 24 " " 3 ModifiedDate

這個格式文件記錄了這個表的字段(共  3個字段)類型、長度、字符和行分割符和字段名等信息。

 BCP還可以通過-x選項生成xml格式的格式文件。

 EXEC master..xp_cmdshell 'BCP AdventureWorks.sales.currency format nul -f c:currency_format2.fmt -x -c -T'

 xml格式文件所描述的內(nèi)容和普通格式文件所描述的內(nèi)容完全一樣,只是格式不同。

 4. 如何使用BCP導入數(shù)據(jù)

 BCP可以通過in命令將上面所導出的currency1.txt和currency2.txt再重新導入到數(shù)據(jù)庫中,由于currency有主鍵,因此我們將復制一個和currency的結(jié)構(gòu)完全一樣的表。

 SELECT TOP 0 * INTO AdventureWorks.sales.currency1 FROM AdventureWorks.sales.currency

將數(shù)據(jù)導入到  currency1表中

 EXEC master..xp_cmdshell 'BCP AdventureWorks.sales.currency1 in c:currency1.txt -c -T'

導入數(shù)據(jù)也同樣可以使用  -F和-L選項來選擇導入數(shù)據(jù)的記錄行。

 EXEC master..xp_cmdshell 'BCP AdventureWorks.sales.currency1 in c:currency1.txt -c -F 10 -L 13 -T'

在導入數(shù)據(jù)時可以根據(jù)已經(jīng)存在的格式文件將滿足條件的記錄導入到數(shù)據(jù)庫中,不滿足則不導入。如上述的格式文件中的第三個字段的字符長度是  24,如果某個文本文件中的相應(yīng)字段的長度超過24,則這條記錄將不被導入到數(shù)據(jù)庫中,其它滿足條件的記錄正常導入。

使用普通的格式文件

 EXEC master..xp_cmdshell 'BCP AdventureWorks.sales.currency1 in c:currency1.txt -F 10 -L 13 -c -f c:currency_format1.fmt -T'

使用  xml格式的格式文件

 EXEC master..xp_cmdshell 'BCP AdventureWorks.sales.currency1 in c:currency1.txt -F 10 -L 13 -c -x -f c:currency_format2.fmt -T'

總結(jié)

 BCP命令是SQL Server提供的一個快捷的數(shù)據(jù)導入導出工具。使用它不需要啟動任何圖形管理工具就能以高效的方式導入導出數(shù)據(jù)。當然,它也可以通過xp_cmdshell在SQL語句中執(zhí)行,通過這種方式可以將其放到客戶端程序中(如delphi、c#等)運行,這也是使客戶端程序具有數(shù)據(jù)導入導出功能的方法之一。

使用  char類型做為存儲類型,沒有前綴且以"  "做為字段分割符,以" "做為行分割符。

 -w

和  -c類似,只是當使用Unicode字符集拷貝數(shù)據(jù)時使用,且以nchar做為存儲類型。

 -t field_term

指定字符分割符,默認是  "  "。

 -r row_term

指定行分割符,默認是  " "。

 -S server_name[ instance_name]

指定要連接的  SQL Server服務(wù)器的實例,如果未指定此選項,BCP連接本機的SQL Server默認實例。如果要連接某臺機器上的默認實例,只需要指定機器名即可。

 -U login_id

指定連接  SQL Sever的用戶名。

 -P password

指定連接  SQL Server的用戶名密碼。---www.bianceng.cn

 -T

指定  BCP使用信任連接登錄SQL Server。如果未指定-T,必須指定-U和-P。

 -k

指定空列使用  null值插入,而不是這列的默認值。

 2. 如何使用BCP導出數(shù)據(jù)

 (1) 使用BCP導出整個表或視圖。

 BCP AdventureWorks.sales.currency out c:currency1.txt -c -U"sa" -P"password" --使用密碼連接

 BCP AdventureWorks.sales.currency out c:currency1.txt -c -T --使用信任連接

下面是上述命令執(zhí)行后的輸出結(jié)果

 Starting copy...

 105 rows copied.

 Network packet size (bytes): 4096

 Clock Time (ms.) Total : 10 Average : (10500.00 rows per sec.)

下面是  currency1.txt的部分內(nèi)容

 AED Emirati Dirham 1998-06-01 00:00:00.000

 AFA Afghani 1998-06-01 00:00:00.000

 ... ... ...

 ... ... ...

 ZWD Zimbabwe Dollar 1998-06-01 00:00:00.000

看完了這篇文章,相信你對“SQL Server數(shù)據(jù)導入導出工具BCP怎么用”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!


文章名稱:SQLServer數(shù)據(jù)導入導出工具BCP怎么用
文章來源:http://weahome.cn/article/jjgodj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部