首页 > 解决方案 > 将 CSV 从 PowerShell 导入 SQL Server

问题描述

我试图将 CSV 文件从 PowerShell 导入我的 SQL Server 数据库。我已经创建了带有列的数据库和表。我获得了需要导入的 CSV 文件中的数据。

我试图研究并发现我修改了一些代码,所以它应该可以工作,但是当我运行代码时,我得到了错误:

Import-CsvToSql:使用“1”参数调用“writetoserver”的异常:“事务与连接无关或已完成”

但是我还没有将数据导入到表中,所以我不知道出了什么问题。

这是我到目前为止的代码:

Import-Module csvsqlimport
Import-CsvToSql -Csv C:\Users\Tim\Desktop\POWERSHELL\AutoParts.csv `
    -SqlServer DHCP_SERVER -Database FeilAuto4 `
    -Table dbo.Reservedele -FirstRowColumns -Delimiter ";" -Truncate

标签: sql-serverpowershell

解决方案


您可能想尝试“SqlServer”模块,因为它由 Microsoft 保持最新并且具有多个 SQL cmdlet。唯一的缺点是您必须根据它们的 cmdlet 将脚本分成多个命令。

## Install module if not installed, this is a one time install.
Install-Module SqlServer

## Input Variables
$csvPath = "C:\Users\Tim\Desktop\POWERSHELL\AutoParts.csv"
$csvDelimiter = ";"
$serverName = "DHCP_SERVER"
$databaseName = "FeilAuto4"
$tableSchema = "dbo"
$tableName = "Reservedele"

## Truncate Table
Invoke-Sqlcmd -ServerInstance $serverName -Database $databaseName -Query "TRUNCATE TABLE $tableSchema.$tableName"

## Import CSV into SQL
Import-Csv -Path $csvPath -Delimiter $csvDelimiter | Write-SqlTableData -ServerInstance $serverName -DatabaseName $databaseName -SchemaName $tableSchema -TableName $tableName -Force

推荐阅读