2016-07-29 10 views
1

Ich habe eine Datentabelle, die ich aus SQL importiert habe, die zwei Spalten hat. Einer ist Ländercode und der andere ist der Name des Landes.Powershell wählen Wert aus Datentabelle wo

Country Code table

Ich habe einen CVS Import von Ländernamen und ich möchte mit jedem Ländernamen durch die Datentabelle gehen und den entsprechenden Ländercode zu erhalten.

Wenn es SQL wäre, könnte ich das tun, aber ich kann nicht denken, wie dies in PowerShell am besten erreicht wird. Ich könnte natürlich jeden Ländernamen an SQL übergeben und den Ländercode abfragen, aber es gibt ca. 7000 Einträge in der CSV-Datei.

Ich habe den folgenden Code, der die CSV-Datei importiert und ich kann

$path = "C:\Temp\myImport.csv" 
$import = import-csv $path 

foreach($object in $import){ 

} 
+0

Also ... Sie müssen Daten aus CSV-Datei in SQL Server mit Hilfe von PowerShell laden? – gofr1

Antwort

0

Einfach Einsatz für jede Zeile ausgeführt werden durch die in ihr enthaltenen Objekte durchlaufen.

$SQLInsertFormat="insert into [table name goes there]([columns goes there]) values ({0},{1})" 

$SQLConnectionString = "[connection string goes there]" 
$SQLCmd = New-Object System.Data.SqlClient.SqlCommand 
$SQLCmd.CommandType = [System.Data.CommandType]::Text 

$SQLCmd.Connection = $SQLConnectionString 
$SQLCmd.Connection.Open() 
$path = "C:\Temp\myImport.csv" 
$import = import-csv $path 

foreach($object in $import){ 
    $SQLCmd.CommandText = $SQLInsertFormat -f $object.CountryCode, $object.UpperCase 
    $SQLCmd.ExecuteNonQuery() 
} 

$SQLCmd.Connection.Close() 
Verwandte Themen