日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

SQL Server數(shù)據(jù)導(dǎo)入導(dǎo)出工具BCP詳解

系統(tǒng) 2001 0

? ? ?BCP是SQL Server中負(fù)責(zé)導(dǎo)入導(dǎo)出數(shù)據(jù)的一個(gè)命令行工具,它是基于DB-Library的,并且能以并行的方式高效地導(dǎo)入導(dǎo)出大批量的數(shù)據(jù)。本文介紹如何利用BCP導(dǎo)入導(dǎo)出數(shù)據(jù)。

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

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

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

BCP共有四個(gè)動(dòng)作可以選擇。
(1) 導(dǎo)入。
這個(gè)動(dòng)作使用in命令完成,后面跟需要導(dǎo)入的文件名。
(2) 導(dǎo)出。
這個(gè)動(dòng)作使用out命令完成,后面跟需要導(dǎo)出的文件名。
(3) 使用SQL語句導(dǎo)出。
這個(gè)動(dòng)作使用queryout命令完成,它跟out類似,只是數(shù)據(jù)源不是表或視圖名,而是SQL語句。
(4) 導(dǎo)出格式文件。
這個(gè)動(dòng)作使用format命令完成,后而跟格式文件名。

下面介紹一些常用的選項(xiàng):

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

-x?
這個(gè)選項(xiàng)要和-f format_file配合使用,以便生成xml格式的格式文件。

-F first_row?
指定從被導(dǎo)出表的哪一行導(dǎo)出,或從被導(dǎo)入文件的哪一行導(dǎo)入。

-L last_row?
指定被導(dǎo)出表要導(dǎo)到哪一行結(jié)束,或從被導(dǎo)入文件導(dǎo)數(shù)據(jù)時(shí),導(dǎo)到哪一行結(jié)束。

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

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

-t field_term?
指定字符分割符,默認(rèn)是"\t"。

-r row_term?
指定行分割符,默認(rèn)是"\n"。

-S server_name[ \instance_name]?
指定要連接的SQL Server服務(wù)器的實(shí)例,如果未指定此選項(xiàng),BCP連接本機(jī)的SQL Server默認(rèn)實(shí)例。如果要連接某臺機(jī)器上的默認(rèn)實(shí)例,只需要指定機(jī)器名即可。

-U login_id?
指定連接SQL Sever的用戶名。

-P password?
指定連接SQL Server的用戶名密碼。

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

-k
指定空列使用null值插入,而不是這列的默認(rèn)值。



-- 不利用格式化文件的導(dǎo)入導(dǎo)出(以下示例皆省略了-S參數(shù),因?yàn)槭窃诒緳C(jī),又是默認(rèn)實(shí)例)
--
簡單導(dǎo)出表
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?-Pxxxxx '
-- 過濾導(dǎo)出表
exec ?master..xp_cmdshell? ' bcp?"select?top?3?*?from?db_oa.dbo.t_user_list"??queryout?c:\a.txt?-c?-T '
-- 簡單導(dǎo)入表
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

?

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

(1) 使用BCP導(dǎo)出整個(gè)表或視圖

EXEC ?master..xp_cmdshell? ' bcp?"SELECT??* from?bigfootmis.dbo.員工" ? ? ? ? ? ?queryout?d:\sqldata\abc.txt??-S.\sqlserver2005??-c?-T?-U?"sa"?-P?"yjsoft"? '

?

? 總結(jié)

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

?

?

?

?

?


?

?

?

?

?

?

?

SQL Server數(shù)據(jù)導(dǎo)入導(dǎo)出工具BCP詳解


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 鹤壁市| 唐海县| 蓬安县| 修武县| 昭通市| 安龙县| 黔西县| 江川县| 南平市| 克什克腾旗| 清苑县| 祁东县| 桦南县| 双辽市| 辉县市| 黔西| 濉溪县| 伊宁县| 佛冈县| 五指山市| 客服| 祁门县| 凤山县| 自贡市| 尚志市| 鹤山市| 易门县| 衡阳市| 米易县| 清丰县| 黎城县| 保定市| 新河县| 武功县| 志丹县| 砚山县| 荣成市| 漠河县| 丰镇市| 灵川县| 永清县|