将结果输出保存到SQL数据库表

时间:2018-07-14 08:07:03

标签: powershell

成功从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表中保存结果的帮助。

2 个答案:

答案 0 :(得分:1)

虽然@postanote的答案有效,但请注意,由于它是连接字符串,因此容易受到SQL注入错误或折衷的影响,并且任何包含'的值都将破坏它。

我建议使用Out-DbaDataTable中的Write-DbaDataTabledbatools

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

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

这也应该比单独的INSERT语句快得多。

答案 1 :(得分:-1)

尝试这种方法...

$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?

因此,此帖子可以被视为上述内容的重复。