【问题标题】:Saving results output to SQL database table将结果输出保存到 SQL 数据库表
【发布时间】:2018-07-14 21:06:02
【问题描述】:

已成功从 PowerShell 生成结果,但不知道如何将其保存到 SQL 数据库表中……因为我们需要表中的信息以进行进一步操作。

Get-Content "D:\Files\Legal.doc"
| Select-String -Pattern  "Currency term loan in an aggregate amount equal to the"
| Select-Object Path, LineNumber, Line
| Export-Csv -Path D:\Results.csv -NoTypeInformation -Encoding ASCII

在 SQL 表中保存结果时需要帮助。

【问题讨论】:

  • FTR,您发布的代码不可能工作。我是否正确地假设您实际上将所有这些都放在一行中,并且只是为这个问题包装了它?

标签: powershell


【解决方案1】:

虽然@postanote 的答案会起作用,但请注意它容易受到 SQL 注入错误或损害,因为它连接字符串,并且任何包含 ' 的值都会破坏它。

我建议使用来自dbatoolsOut-DbaDataTableWrite-DbaDataTable

$database = 'DBName'
$server = '.'
$table = 'DBTableName'

Import-CSV .\yourcsv.csv | out-dbadatatable | write-dbadatatable -sqlinstance $server -table $table -database $database;

这也应该比单独的 INSERT 语句运行得更快。

【讨论】:

    【解决方案2】:

    试试这个方法...

    $database = 'DBName'
    $server = '.'
    $table = 'DBTableName'
    
    Import-CSV .\yourcsv.csv | ForEach-Object {Invoke-Sqlcmd `
    -Database $database -ServerInstance $server `
    -Query "insert into $table VALUES ('$($_.Column1)','$($_.Column2)')"
    }
    

    ...如下所述。

    Storing Results from Powershell to SQL Table

    How to import data from .csv in SQL Server using PowerShell?

    所以,这篇文章可以被认为是上面的重复。

    【讨论】:

      猜你喜欢
      • 2020-04-21
      • 2018-03-11
      • 2016-01-29
      • 2015-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      相关资源
      最近更新 更多