Sqlserver使用BULK同時導入文件夾內所有txt、csv文件

之前寫過一篇文章具體介紹如何使用bulk導入txt识补,csv文件族淮,其中詳細介紹了bulk的基礎知識,以及如何同時導入多個txt,csv文件凭涂。具體內容請單擊Sqlserver使用BULK同時導入多個txt祝辣、csv文件

在上一篇文章里,雖然能同時導入多個文件切油,但是蝙斜,還是有個弊端,需要更改文件名澎胡,還是不夠方便孕荠。下面對上次導數(shù)腳本進行升級,不需要再更改文件名攻谁,直接導入文件夾內所有文件稚伍。

解決思路

首先、將文件夾中文件的【路徑+名稱】信息存儲在一個表變量里戚宦。
然后个曙、根據(jù)文件的【路徑+名稱】信息調整 bulk命令中的 data_file的值,并將命令存儲在表變量中阁苞。
最后、執(zhí)行存儲在表變量中的SQL語句祠挫。

SQL命令解析

1.創(chuàng)建表變量 #files name字段用來存儲文件名 sql字段用來存儲sql語句
2.將文件夾中以.csv結尾的文件插入到 表變量中的 name字段中
3.將表變量#files中 name字段不是以.csv結尾的數(shù)據(jù)刪除
--1.創(chuàng)建表變量 #files name字段用來存儲文件名 sql字段用來存儲sql語句
CREATE TABLE #files (name varchar(200) NULL, sql varchar(7000) NULL)
--2.將data文件夾中以.csv結尾的文件插入到 表變量中的 name字段中
INSERT #files(name)  exec master..xp_cmdshell 'dir /s/b C:\data\*.csv'
--3.將表變量#files中 name字段不是以.csv結尾的數(shù)據(jù)刪除
DELETE #files WHERE coalesce(name, '') NOT LIKE '%.csv'

4.根據(jù)文件名設置sql語句,并更新到sql字段里
--4.根據(jù)文件名設置sql語句,并更新到sql字段里
UPDATE #files
SET   sql  = 'bulk insert [DatabaseName].[dbo].[table] from '''+name+''' 
        with (FIRSTROW =1,CODEPAGE=''936'',FIELDTERMINATOR = ''|'',ROWTERMINATOR = ''0x0A'')'

5.執(zhí)行SQL命令
--5.執(zhí)行SQL命令
DECLARE @sql varchar(8000)
DECLARE cur CURSOR STATIC LOCAL FOR
   SELECT sql FROM #files
        OPEN cur
            WHILE 1 = 1
                BEGIN
                    FETCH cur INTO @sql
                    IF @@fetch_status <> 0
                    BREAK
                    EXEC(@sql)
                    print(@sql)
                END
        DEALLOCATE cur
drop table #files

全部代碼

---將C:\data\文件夾中所有的csv文件導入到[DatabaseName].[dbo].[table]表中

--1.創(chuàng)建表變量 #files name字段用來存儲文件名 sql字段用來存儲sql語句
CREATE TABLE #files (name varchar(200) NULL, sql varchar(7000) NULL)
--2.將data文件夾中以.csv結尾的文件插入到 表變量中的 name字段中
INSERT #files(name)  exec master..xp_cmdshell 'dir /s/b C:\data\*.csv'
--3.將表變量#files中 name字段不是以.csv結尾的數(shù)據(jù)刪除
DELETE #files WHERE coalesce(name, '') NOT LIKE '%.csv'

--4.根據(jù)文件名設置sql語句,并更新到sql字段里
UPDATE #files
SET   sql  = 'bulk insert [DatabaseName].[dbo].[table] from '''+name+''' 
        with (FIRSTROW =1,CODEPAGE=''936'',FIELDTERMINATOR = ''|'',ROWTERMINATOR = ''0x0A'')'

--5.執(zhí)行SQL命令
DECLARE @sql varchar(8000)
DECLARE cur CURSOR STATIC LOCAL FOR
   SELECT sql FROM #files
        OPEN cur
            WHILE 1 = 1
                BEGIN
                    FETCH cur INTO @sql
                    IF @@fetch_status <> 0
                    BREAK
                    EXEC(@sql)
                    print(@sql)
                END
        DEALLOCATE cur
drop table #files
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末那槽,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子等舔,更是在濱河造成了極大的恐慌骚灸,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件慌植,死亡現(xiàn)場離奇詭異甚牲,居然都是意外死亡,警方通過查閱死者的電腦和手機蝶柿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門丈钙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人交汤,你說我怎么就攤上這事雏赦。” “怎么了?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵星岗,是天一觀的道長填大。 經常有香客問我,道長俏橘,這世上最難降的妖魔是什么允华? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮寥掐,結果婚禮上靴寂,老公的妹妹穿的比我還像新娘。我一直安慰自己曹仗,他們只是感情好榨汤,可當我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著怎茫,像睡著了一般收壕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上轨蛤,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天蜜宪,我揣著相機與錄音,去河邊找鬼祥山。 笑死圃验,一個胖子當著我的面吹牛,可吹牛的內容都是我干的缝呕。 我是一名探鬼主播澳窑,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼供常!你這毒婦竟也來了摊聋?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤栈暇,失蹤者是張志新(化名)和其女友劉穎麻裁,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體源祈,經...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡煎源,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了香缺。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片手销。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖图张,靈堂內的尸體忽然破棺而出原献,到底是詐尸還是另有隱情馏慨,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布姑隅,位于F島的核電站写隶,受9級特大地震影響,放射性物質發(fā)生泄漏讲仰。R本人自食惡果不足惜慕趴,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望鄙陡。 院中可真熱鬧冕房,春花似錦、人聲如沸趁矾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽毫捣。三九已至详拙,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蔓同,已是汗流浹背饶辙。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留斑粱,地道東北人弃揽。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像则北,于是被迫代替她去往敵國和親矿微。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內容

  • BULK語句基礎 BULK有很多參數(shù),但是常用的只有幾個惑艇,下面簡單介紹一下 代碼行中的命名規(guī)則下面代碼均使用該命名...
    michaelxwang閱讀 3,465評論 0 2
  • Spark SQL, DataFrames and Datasets Guide Overview SQL Dat...
    草里有只羊閱讀 18,322評論 0 85
  • MYSQL 基礎知識 1 MySQL數(shù)據(jù)庫概要 2 簡單MySQL環(huán)境 3 數(shù)據(jù)的存儲和獲取 4 MySQL基本操...
    Kingtester閱讀 7,811評論 5 116
  • 每天說早安道晚安的人蒿辙,突然就消失了拇泛。就在我全然習慣這種依賴的模式滨巴。難免感覺心揪痛了一下。我發(fā)誓只是一下俺叭。 仰望天空...
    冰羯閱讀 182評論 0 0
  • 時光像矯健的少年 他匆匆片刻 就越過了山川和海洋 他成了世間的沙礫 隱匿在沙丘里 他成了狂怒的海風 推起驚濤駭浪 ...
    酋叔閱讀 173評論 0 0