我想使用PowerShell从我的CSV文件导入数据。 答案贴在这里: How to import data from .csv in SQL Server using PowerShell? 就像一个魅力。
但是,我想建立在这个解决方案的基础上。如果文件包含2列,例如Feature1,Feature2,我希望该表有第三列,例如名称。目的是将对应于不同名称的多个文件加载到一个表中。
Feature1 | Feature2 | Name
Value1 | Value2 | NameA
Value3 | Value4 | NameA
...
Value5 | Value6 | NameB
如果我给PowerShell赋予变量
$NameValue = "NameA"
如何在命令中正确包含此内容:
Import-CSV .\NameA.csv | ForEach-Object {Invoke-Sqlcmd `
-Database $database -ServerInstance $server `
-Query "insert into $table VALUES ('$($_.Feature1)','$($_.Feature2)', '$($NameValue.Name)')"
}
目前,这只填写功能列,但名称列为空白。
答案 0 :(得分:0)
这应该这样做(除非你从字符串中访问变量的属性,否则你不应该使用子表达式$()
运算符):
Import-CSV .\NameA.csv | ForEach-Object {Invoke-Sqlcmd `
-Database $database -ServerInstance $server `
-Query "insert into $table VALUES ('$($_.Feature1)','$($_.Feature2)', '$NameValue')"
}