SSDT-BI之七:循环任务(容器)
這篇博客介紹一下循環(huán)任務(wù)的一種:文件循環(huán)。項目背景是這樣的:升級數(shù)據(jù)庫中,我們需要升級許多的View,Function,SP等,這些文件眾多,所以期望能夠把文件統(tǒng)一的放在一個或者幾個文件夾中一起執(zhí)行。這種需求,文件循環(huán)任務(wù)就派上用場了。
1,如下圖,容器下有兩種循環(huán),我們選擇Foreach循環(huán)容器,For循環(huán)容器請自行探索。
2,再看Package工作區(qū),拖動箭頭位置可以將兩個任務(wù)連接在一起,組成一個執(zhí)行序列。
3,雙擊Foreach循環(huán)容器任務(wù)后,打開Foreach循環(huán)容器編輯器,左側(cè)選擇集合,右側(cè)Enumerator 選擇Foreach文件枚舉器。
4,點擊Expressions右側(cè)的按鈕,打開屬性編輯器,屬性選擇Directory,表達式就選擇我們之前創(chuàng)建的變量即可,這個變量之前我們是指向Script文件夾。
5,然后我們再這樣設(shè)置一下,就能夠遍歷Script文件夾以及子文件夾下的所有sql文件。
經(jīng)過以上步驟,現(xiàn)在的循環(huán)任務(wù)已經(jīng)能夠遍歷文件,但是要怎么執(zhí)行我們遍歷的文件呢?
1,需要新建一個變量,用來存放每次循環(huán)得到的文件名,例如:File_Script。
2,在循環(huán)編輯器的窗口,左側(cè)選擇變量映射,右側(cè)變量選擇我們剛剛新建的變量,這樣每次循環(huán)文件名都會賦值給變量File_Script。
那么又怎么使用這個變量呢?
以前的博客有提到過,執(zhí)行sql文件需要文件連接,那么我們能不能創(chuàng)建一個文件連接,文件的ConnectionString就選擇File_Script呢?想到的就要去試試,不試一試就可能錯過你這一輩子最重要的東西。如下圖,我們確實創(chuàng)建了這么一個文件連接。
但是要注意File_Script這個變量的作用域,它雖然是在Package中創(chuàng)建的,但是它只有在循環(huán)中才賦值,所以相當(dāng)于只有在循環(huán)內(nèi)部才能取得一個有效的文件路徑,也就是說利用這個變量創(chuàng)建的文件連接只能在循環(huán)任務(wù)的內(nèi)部使用。
如下圖,我們在循環(huán)任務(wù)內(nèi)部加入一個執(zhí)行sql任務(wù),并且選擇剛剛創(chuàng)建的文件連接,這樣整個Script文件夾下的sql文件都會被執(zhí)行了。
請注意:在循環(huán)任務(wù)中,如果有一次循環(huán)出錯,循環(huán)任務(wù)會暫停執(zhí)行。
轉(zhuǎn)載于:https://www.cnblogs.com/marsyan/p/4539902.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的SSDT-BI之七:循环任务(容器)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue根据数组对象中某个唯一标识去重
- 下一篇: Django congtent type