如何使用PowerShell将CSV文件的数据插入SQL Server数据库表

use*_*917 0 sql csv powershell sql-server-2008 sql-server-2008-r2

我想通过从我的本地机器执行PS脚本来做到这一点..其中DB服务器是远程机器.

在CSV文件中,我没有指定任何列名.(只有逗号分隔和对齐o/p).

我不想用 BULK INSERT

Mik*_*Fal 5

我有两种方法可以解决这个问题:

BCP.EXE

SQL Server为批量导入数据提供命令行实用程序bcp.您可以简单地将bcp执行合并到Powershell脚本或窗口中以加载csv数据.例:

$loadfile = "C:\datafile\loadthis.csv"
bcp pity.dbo.foo in $loadfile -T -c -t","
Run Code Online (Sandbox Code Playgroud)

使用.NET

你也可以在Powershell中使用.NET库,但这是一个更棘手的命题.首先,获取Chad Miller 的Out-DataTableWrite-DataTable脚本,这将使您的生活变得更加轻松.然后你可以做以下事情:

$dt = Import-Csv -Path "C:\datafile\loadthis.csv" | Out-DataTable
Write-DataTable -ServerInstance "localhost" -Database "pity" -TableName "foo" -Data $dt
Run Code Online (Sandbox Code Playgroud)

这些和其他解决方案可以在这篇博文中找到.