johnny-cgn
Goto Top

Powershell Update MSSQL

Liebe Administratoren,
ich habe eine regelmäßig generierete CSV aus Welcher Preise in der db geupdated werden sollen und komme nicht weiter...
Bisher habe ich frei nach dieser Anleitung mein Glück versucht...

$DATA=IMPORT-CSV C:\tmp\dl.csv
foreach($LINE in $DATA)
{
$SKU = "`'"+$Line.SKU+"`'"  
$AMAZON_PRICE = "`'"+$LINE.AMAZON_PRICE+"`'"  
invoke-sqlcmd `
-database database `
-serverinstance here\WAWI `
-query `
"UPDATE d `  
SET d.fNettoPreis = $LINE.AMAZON_PRICE `
FROM tPreisDetail AS d `
INNER JOIN tPreis p ON d.kPreis = p.kPreis `
INNER JOIN tArtikel a ON p.kArtikel = a.kArtikel `
WHERE a.cArtNr = $LINE.SKU `
AND (p.kShop = 3 OR p.kShop = 4);"  
}

Wie bekomme ich das hin, bzw wo liegt der Fehler?

Content-Key: 386855

Url: https://administrator.de/contentid/386855

Printed on: April 25, 2024 at 08:04 o'clock

Mitglied: 137084
137084 Sep 19, 2018 updated at 07:51:01 (UTC)
Goto Top
bzw wo liegt der Fehler?
Da du hier weder das Format deiner CSV Datei noch das Format der Spalten deiner Tabellen, noch Fehlermeldungen postest kann ich nur die syntaktisch falschen Bestandteile wie falsche Variablenanwendung korrigieren.
CSV Delimiter bitte anpassen und natürlich das SQL Server Snapin laden
$DATA=IMPORT-CSV 'C:\tmp\dl.csv' -delimiter ";"  
foreach($LINE in $DATA)
{
invoke-sqlcmd -database database -serverinstance 'here\WAWI' -query "UPDATE d SET d.fNettoPreis = '$($LINE.AMAZON_PRICE)' FROM tPreisDetail AS d INNER JOIN tPreis p ON d.kPreis = p.kPreis INNER JOIN tArtikel a ON p.kArtikel = a.kArtikel WHERE a.cArtNr = '$($LINE.SKU)' AND (p.kShop = 3 OR p.kShop = 4);"  
}