我正在阅读一个CSV列,并使用SQL Server Table1列检查它,然后像这样更新table2列,但我不确定为什么它会工作。
我得到的所有行都是99,尽管我的CSV列并不全是空的,并且该值与table1中的值完全匹配。
$CSVImport = Import-CSV $CSVFileName
ForEach ($CSVLine in $CSVImport) {
$CSVEvent = $CSVLine.Event
$CSVName = $CSVLine.Name
if($CSVEvent -eq ''){
$EventID = '99'
}else{
$EventID = "SELECT Convert(int,Event_Id) From Table1 WHERE Event_name = '$CSVEvent'"
Invoke-Sqlcmd -Query $EventID
}
$query = "INSERT INTO Table2(Event_Id, Name) VALUES($EventID, '$CSVName');"
Invoke-Sqlcmd -Query $query
}
}
1条答案
按热度按时间h5qlskok1#
它 * 输出 * 查询结果,而不是 * 将其捕获到变量中 *。如果没有将输出分配给变量、重定向或通过管道发送,它 * 将打印到显示器 *。
我假设目的是将
Invoke-Sqlcmd
的结果以整数形式存储在变量$EventID
中:但是,请注意,如果查询返回 * 多 * 行,则
$EventID
将是整数的 * 数组 *。