Jump to content
Melde dich an, um diesem Inhalt zu folgen  

Powershell SQL Abfrage

Empfohlene Beiträge

Hi zusammen,

 

kann mir wer helfen mit Powershell und SQL Abfragen.

Ich stelle mich zu doof an.

Ich benötige eine Abfrage die Von ServerA in DatenbankA einen Select macht. Dieser Select wird nur 1 Wert zurückliefern.

Also z.B. select FELD from tabelle where recid='123'

und das ganze in einer Variablen.

 

Danke schonmal.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Du kannst einfach .Net Funktionen ganz einfach verwenden - z.B.

$connectionString = "Data Source=SERVER\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=TESTDB"
$con = New-Object System.Data.SqlClient.SqlConnection($connectionString)
$command = New-Object System.Data.SqlClient.SqlCommand("select top 1 Name from Users where id=1", $con)
$command.ExecuteScalar()

ExecuteScalar() liefert max. 2033 Zeichen der ersten Spalte des Resultsets - bei Einzelwerten langt das evtl. schon.

Wenn Du mehrere Spalten oder gar Zeilen brauchst, ist z.B. ein SqlDataAdapter nötig.
Beispiele z.B hier:

https://stackoverflow.com/questions/8423541/how-do-you-run-a-sql-server-query-from-powershell

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Bin ich zu doof für. Bestimmt muss um deinen Codeschnipsel noch was drum rum.

 

# IP Adresse der Kasse
# Kassennummer abfragen
$KassenID = Read-Host -Prompt "Kassennummer (z.B. 000300)                   :"

# benötigte Variablen definieren
$QueryTimeout = 600
$ConnectString = "Server=Servername;Database=Produktiv;Integrated Security=True;"
$connectionString = $ConnectString

# KassenIP Abfragen
Write-Host "frage Kassen IP ab"
$connection = New-Object System.Data.SqlClient.SqlConnection
$connection.ConnectionString = $connectionString
$connection.Open()
$query = "select Top 1 IPADDRESS from RETAILTERMINALTABLE where Terminalid = " + $KassenID + ";"
$command = $connection.CreateCommand()
$command.CommandText = $query
$command.CommandTimeout = $QueryTimeout
$result = $command.ExecuteReader()

write-Host $result

$connection.Close()
Read-Host "Press Enter to continue…" | Out-Null

Bisher hab ich es so versucht.

Bekomme aber als Ausgabe von $result nur:

System.Data.Common.DataRecordInternal

 

Frage ist also wie kann ich deinen Code hier einbauen, oder wie bekomm ich es einfach hin das in einer variable: $KassenIP die IP Adresse steht?

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Melde dich an, um diesem Inhalt zu folgen  

Fachinformatiker.de, 2019 SE Internet Services

fidelogo_small.png

if_icon-6-mail-envelope-closed_314900.pnSchicken Sie uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App


Get it on Google Play

Kontakt

Hier werben?
Oder senden Sie eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...

Wichtige Information

Fachinformatiker.de verwendet Cookies. Mehr dazu in unserer Datenschutzerklärung