亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

SQL Server BCP使用小結(jié)

系統(tǒng) 1846 0
原文: SQL Server BCP使用小結(jié)

用法:?bcp?{dbtable? | ?query}?{ in ? | ?out? | ?queryout? | ?format}?數(shù)據(jù)文件
??
[ -m?最大錯誤數(shù) ] ????????????? [ -f?格式化文件 ] ????????? [ -e?錯誤文件 ]
??
[ -F?首行 ] ??????????????????? [ -L?末行 ] ????????????? [ -b?批大小 ]
??
[ -n?本機類型 ] ??????????????? [ -c?字符類型 ] ????????? [ -w?寬字符類型 ]
??
[ -N?將非文本保持為本機類型 ] ? [ -V?文件格式版本 ] ????? [ -q?帶引號的標識符 ]
??
[ -C?代碼頁說明符 ] ??????????? [ -t?字段終止符 ] ??????? [ -r?行終止符 ]
??
[ -i?輸入文件 ] ??????????????? [ -o?輸出文件 ] ????????? [ -a?數(shù)據(jù)包大小 ]
??
[ -S?服務器名稱 ] ????????????? [ -U?用戶名 ] ??????????? [ -P?密碼 ]
??
[ -T?可信連接 ] ??????????????? [ -v?版本 ] ????????????? [ -R?允許使用區(qū)域設(shè)置 ]
??
[ -k?保留空值 ] ??????????????? [ -E?保留標識值 ]
??
[ -h"加載提示" ] ?????????????? [ -x?生成xml?格式化文件 ]


-- 不利用格式化文件的導入導出(以下示例皆省略了-S參數(shù),因為是在本機,又是默認實例)
--
簡單導出表
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 '
-- 過濾導出表
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格式化文件進行數(shù)據(jù)的導入!
--
創(chuàng)建測試表
USE ?db_oa;
GO
CREATE ? 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 '

/*
格式化后的文件內(nèi)容如下:

<?xml?version="1.0"?>
<BCPFORMAT?xmlns="http://schemas.microsoft.com/sqlserver/2004/bulkload/format"?xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
?<RECORD>
??<FIELD?ID="1"?xsi:type="CharTerm"?TERMINATOR=","?MAX_LENGTH="7"/>
??<FIELD?ID="2"?xsi:type="CharTerm"?TERMINATOR=","?MAX_LENGTH="100"?COLLATION="Chinese_PRC_CI_AS"/>
??<FIELD?ID="3"?xsi:type="CharTerm"?TERMINATOR=","?MAX_LENGTH="100"?COLLATION="Chinese_PRC_CI_AS"/>
??<FIELD?ID="4"?xsi:type="CharTerm"?TERMINATOR="\r\n"?MAX_LENGTH="100"?COLLATION="Chinese_PRC_CI_AS"/>
?</RECORD>
?<ROW>
??<COLUMN?SOURCE="1"?NAME="Col1"?xsi:type="SQLSMALLINT"/>
??<COLUMN?SOURCE="2"?NAME="Col2"?xsi:type="SQLNVARCHAR"/>
??<COLUMN?SOURCE="3"?NAME="Col3"?xsi:type="SQLNVARCHAR"/>
??<COLUMN?SOURCE="4"?NAME="Col4"?xsi:type="SQLNVARCHAR"/>
?</ROW>
</BCPFORMAT>

這里我們對文件關(guān)鍵字稍作解釋:
????<RECORD>父節(jié)點中的內(nèi)容是對源文件的格式化定義,即你要導入的數(shù)據(jù)文件
????????<FIELD?ID="1"(這里是源數(shù)據(jù)字段ID)?xsi:type="CharTerm"(字段類型)?TERMINATOR=","(字段分隔符)?MAX_LENGTH="7"(最大長度)/>
????????????不難看出,我們最常修改的就是TERMINATOR,可以修改為"|"等你需要的分隔符,注意最后一個字段的分隔符為"\r\n"
????</RECORD>
????<ROW>該父節(jié)點的內(nèi)容是目標數(shù)據(jù)的格式化定義,即你需要導入數(shù)據(jù)文件的地方
????????<COLUMN?SOURCE="1"(這個非常重要,指定的是上面源數(shù)據(jù)的字段ID,當源數(shù)據(jù)和目標數(shù)據(jù)字段順序或數(shù)目不一致時,我們可以修改這里達到我們想要的結(jié)果)?NAME="Col1"(目標字段名稱)?xsi:type="SQLSMALLINT"(目標字段類型)/>
????</ROW>
*/
-- 下面我們創(chuàng)建源數(shù)據(jù)文件,將以下內(nèi)容粘貼到我們指定的數(shù)據(jù)文件C:\myTestFormatFiles-c.txt中
/*

????10,Field2,Field3,Field4
????15,Field2,Field3,Field4
????46,Field2,Field3,Field4
????58,Field2,Field3,Field4
*/
-- 利用bcp格式化文件導入數(shù)據(jù)
exec ?master..xp_cmdshell? ' bcp?db_oa..myTestFormatFiles?in?C:\myTestFormatFiles-c.txt?-f?C:\myTestFormatFiles.Xml?-T '
-- 查看一下導入的數(shù)據(jù)
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導入數(shù)據(jù)
USE ?db_oa;
GO
DELETE ?myTestFormatFiles;
GO
BULK ? INSERT ?myTestFormatFiles?
???
FROM ? ' C:\myTestFormatFiles-c.txt ' ?
???
WITH ?(FORMATFILE? = ? ' C:\myTestFormatFiles.Xml ' );
GO
SELECT ? * ? FROM ?myTestFormatFiles;
GO
/*
????Col1????Col2????Col3????Col4
????10????Field2????Field3????Field4
????15????Field2????Field3????Field4
????46????Field2????Field3????Field4
????58????Field2????Field3????Field4
*/


-- 使用OPENROWSET?大容量行集提供程序?qū)?
USE ?db_oa;
DELETE ?myTestFormatFiles;
GO
INSERT ? INTO ?myTestFormatFiles
????
SELECT ? *
??????
FROM ?? OPENROWSET ( BULK ?? ' C:\myTestFormatFiles-c.txt ' ,
??????FORMATFILE
= ' C:\myTestFormatFiles.Xml ' ?????
??????)?
as ?t1?;
GO
SELECT ? * ? 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使用小結(jié)


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

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

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

【本文對您有幫助就好】

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

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 欧美成人精品第一区二区三区 | 成人一区二区免费中文字幕 | 狠狠色丁香婷婷久久综合2021 | 青青热久久国产久精品秒播 | 亚洲精品一二三区-久久 | 99热资源| 久热99 | 国产99欧美精品久久精品久久 | 色综合欧美亚洲另类久久 | 久久一区二区精品综合 | 欧美末成年videos在线观看 | 欧美精品毛片 | 亚洲高清视频免费 | 亚洲三级欧美 | 亚洲视频大全 | 九九热在线免费观看 | 99国产精品2018视频全部 | 深夜在线| 99久久精品免费看国产麻豆 | 成年女人黄小视频 | 亚洲人成免费网站 | 国产原创麻豆精品视频 | 草草影院第一页yycccom | 久久久久综合精品福利啪啪 | 午夜影院操 | 国产真实伦视频在线观看 | 亚州综合激情另类久久久 | 成人免费观看视频久爱网 | 国产精品午夜激爽毛片 | 国产在线观看不卡 | 久久久久久久久毛片精品 | 天天干天天操天天碰 | 国产剧情一区二区 | 亚洲精品国产一区二区三 | 欧美色88| 亚洲综合久久久 | 国产91在线 | 亚洲 | 成熟热自由日本语亚洲人 | 天天操天天舔 | 手机看片精品高清国产日韩 | 国产午夜精品视频 |