簡體   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