繁体   English   中英

如何使用powershell import-csv将csv数据导入sql

[英]How to import csv data into sql using powershell import-csv

我使用了其中一个问题中的类似代码,并将其用于将 csv 数据导入 sql 表,但出现了一个奇怪的错误。 无法在我的编辑器中找到它,需要一双额外的眼睛。

$database = 'ABC_Test'
$server = 'ABCTEST.com'
$table = 'XYZ\A12.ABC_PayCode'
Import-CSV C:\Users\Downloads\sampledata.csv | ForEach-Object {Invoke-Sqlcmd `
-Database $database -ServerInstance $server `
-Query "insert into $table VALUES ('$($_.EMPLOYEE_ID)','$($_.FIRST_NAME)','$($_.LAST_NAME)','$($_.WORK_DATE)','$($_.EARNINGS_CODE)','$($_.HOURS)')"
}

在 Invoke-Sqlcmd 中抛出一个错误:'' 附近的语法不正确。 在 \\mgroupnet.com\\RedirectedFolders\\Documents\\powershell.ps1:5 字符:69

  • ... Users\\qd90\\Downloads\\sampledata.csv | ForEach-Object {Invoke-Sqlcmd `
  •  ~~~~~~~~~~~~~~~
    • CategoryInfo : InvalidOperation: (:) [Invoke-Sqlcmd], SqlPowerShellSqlExecutionException
    • FullQualifiedErrorId : SqlError,Microsoft.SqlServer.Management.PowerShell.GetScriptCommand

这里的问题是架构和表名称具有分隔标识符( \\_ )。 你的 SQL 语句必须用引号或括号对它们进行转义:

# Brackets
$table = '[XYZ\A12].[ABC_PayCode]'
# Quotes
$table = '"XYZ\A12"."ABC_PayCode"'

请注意,模式和表名是分开转义的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM