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-ID: 386855

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

Ausgedruckt am: 19.11.2024 um 22:11 Uhr

137084
137084 19.09.2018 aktualisiert um 09:51:01 Uhr
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);"  
}