【问题标题】:Importing data from CSV files into SQL Server with additional column using PowerShell使用 PowerShell 将数据从 CSV 文件导入带有附加列的 SQL Server
【发布时间】:2017-12-14 20:23:03
【问题描述】:

我想使用 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)')"
  }

目前,这只是填写 Feature 列,但 Name 列是空白的。

【问题讨论】:

  • 只是$NameValue
  • 谢谢。那行得通。但是,它确实需要引号,我认为这是我最初尝试时错过的。

标签: sql-server powershell csv


【解决方案1】:

应该这样做(你不应该使用子表达式$() 运算符,除非你从字符串中访问变量的属性):

Import-CSV .\NameA.csv | ForEach-Object {Invoke-Sqlcmd `
  -Database $database -ServerInstance $server `
  -Query "insert into $table VALUES ('$($_.Feature1)','$($_.Feature2)', '$NameValue')"
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-01
    • 2019-09-20
    • 2015-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多