iT邦幫忙

2022 iThome 鐵人賽

DAY 14
0

上回我們在mssql-scripter的選項中,挑選了符合我們實際需求的選項(與SSMS產生指令碼功能為基準),不過在mssql-scripter命令列中,我們的選定的物件是使用hardcode,即使我們用環境變數來取代,依然必須先手動輸入物件內容,今天我們來嘗試透過其他方式來匯入我們的物件。


首先我選定csv檔案作為傳入我們所需要的物件檔案,這裡先嘗試使用命令列來產生檔案作為檔案來源,語法如下:

New-Item {FilePath} -ItemType File
New-Item c:\temp\test.csv -ItemType File

接著我們在.csv檔案中以表格的方式加入一些資料,如下:
表1
接著利用命令列去讀取.csv的內容,語法如下:

Get-Content {FilePath}
Get-Content c:\temp\test.csv

讀取之後得到以下結果:

One
Two
Three

這樣看來,資料在.csv的直行讀取出來後會變成陣列,我們試試看用環境變數去存取並執行看看得到的結果,如下:

$TEST = Get-Content c:\temp\test.csv

$TEST

$TEST[0]
$TEST[1]
$TEST[2]

One
Two
Three

One
Two
Three

看起來確實如我們預期,因此我們嘗試將上回使用的mssql-scripter語法中物件的名稱寫進.csv檔案,並改寫如下:

$TEST = Get-Content c:\temp\test.csv

mssql-scripter -S . -d FirstDataBase  --schema-and-data  --include-objects $TEST[0] $TEST[1]  --exclude-use-database  --display-progress  -f C:\temp\FirstDataBase_scripter.sql

執行成功後,我們就能得到相同的.sql腳本檔案,而命令列中的物件名稱來源則來自不同的外部檔案(.csv檔案)。

更多小知識,我們下次見~~


上一篇
DAY 13 :mssql-scripter選擇項目以及選擇產檔物件
下一篇
DAY 15 :PowerShell利用命令列匯出檔案作為資料來源
系列文
沒有厲害的頭腦,也能利用腳本實現懶人寫程式的夢想30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言