dadeus
Goto Top

Script für MS SQL schreiben

Hi,

ich muss für unsernen MS SQL Server ein Script in der Powershell schreiben.
Ich habe mich nun ein paar Tage mit der Powershell außeinander gesetzt und kann sie nun bedienen und weiß auch wie Scripte geschrieben werden.
Das Script soll folgendes ausführen:

Es soll eine auflistung aller aller Datenbanken eines MS SQL Servers anzeigen und diese Liste dann in eine txt Datei speichern.

Leider hab ich keine Ahnung wie ich damit beginnen soll und welche Befehle ich dafür benötige.

Um Hilfe wäre ich sehr Dankbar

Gruß
DaDeus

Content-Key: 101768

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

Ausgedruckt am: 28.03.2024 um 21:03 Uhr

Mitglied: godlie
godlie 13.11.2008 um 16:25:17 Uhr
Goto Top
Also was du brauchst ist ein Crashkurs in sachen SQL.

1. Wie baue ich eine Verbindung auf
2. Wie frage ich alle Datenbanken ab

MS-SQL verwendet hauptsächlich SQL und T-SQL als Abfragesprachen ( Querylanguage ).

Eine schnelle Eingabe von powershell und mssql hat das hier zu tage gebracht.
Weitere Anlaufpunkte:
Wikipedia
mstsc.de

http://fwhagen.wordpress.com/2007/10/30/get-data-from-ms-sql-using-a-po ...

grüße
Mitglied: DaDeus
DaDeus 14.11.2008 um 13:20:27 Uhr
Goto Top
Hi,

danke für die schnelle Antwort.
Ich habe es mir so vorgestellt:
Das ich über die Powershell auf den MS SQL gehe und dann das Script ausführe.
Ich weiß wie ich mit der Powershell auf den MS SQL komme, das problem ist, was muss ich in das Script schreiben.
Wenn ich auf dem MS SQL bin muss ich ja nur: select name from sysdatabases where name like 'db%' eingeben.
Die frage ist wie setz ich das für ein Powershell Script um?

Gruß
DaDeus
Mitglied: Biber
Biber 14.11.2008 um 13:37:58 Uhr
Goto Top
Moin DaDeus,

  • entweder Du ersetzt Zeile 23 in Deinem Script durch "$SqlCmd.CommandText = "select name from sysdatabases where name like 'db%;"
  • oder Du postest mal das bisher vorhandene Code-Fragment.

Grüße
Biber
Mitglied: DaDeus
DaDeus 19.11.2008 um 13:24:24 Uhr
Goto Top
Hi,

also ich komm nicht weiter.
Wenn ich per Remote auf den MS SQL gehe und die Powershell starte, dann den Befehl: $SqlCmd.CommandText = "select name from sysdatabases where name like 'db%;
ausführe passiert einfach nichts.
Was muss ich den genau eingeben das mir dann in der Shell die Datenbanken aufgelistet werden.
Ich glaube ich sollte es erstmal so probieren bevor ich mich ans Scripten mache.

Gruß
Tim
Mitglied: DaDeus
DaDeus 01.12.2008 um 15:13:02 Uhr
Goto Top
So habe es jetzt mit folgendem Script hinbekommen:

$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = "Server=Servername;Database=$DATABASE;Integrated Security = True"
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText = "select name from sysobjects where type='u'"
$SqlCmd.Connection = $SqlConnection
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlAdapter.SelectCommand = $SqlCmd
$DataSet = New-Object System.Data.DataSet
$SqlAdapter.Fill($DataSet)
$SqlConnection.Close()
$DataSet.Tables

das gibt mir die Tabellen der einzelnen Datenbanken aus.
Und dieses Script gibt mir die Datenbanken aus:

[reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo")
$Server = new-object ("Microsoft.SqlServer.Management.Smo.Server") "Servername"
foreach($database in $Server.databases) {$database.name}

Nun muss ich die Datenbanken detachen. Hat jemand eine Idee wie ich das mit der Powershell machen kann??

Gruß
DaDeus