none
MS SQL 2008 EXpress alle Datenbanken anzeigen RRS feed

  • Frage

  • Hallo,

    ich sollte von einem MS SQL 2008 Express Server alle Datenbankinstanzen anezeigen.

    Es könnte über "Microsoft.SqlServer.Management.Smo.DatabaseCollection" gehen, habe aber nicht begriffen wie.

    Kann mir jamand helfen?

    Gruß

    Armin

    Freitag, 23. November 2012 10:20

Antworten

  • Hallo Armin,

    SMO zu verwenden, ist eine Möglichkeit, dazu muss dann aber SMO auf den Rechnern, wo Du es verwenden willst auch installiert sein; im Standard ist es nicht.

    Der SqlClient durch .Net aber schon und der ist auch leicht zu verwenden. Hier ein kleines Skript, um die Datenbank Namen auszugeben.

    # Öffnen einer SqlClient Verbindung 
    $con = New-Object Data.SqlClient.SqlConnection
    $con.ConnectionString = "Data Source=.\SQLEXPRESS;Initial Catalog=master;Integrated Security=True;"
    $con.Open()
    
    # New command and reader.
    $sql = "SELECT name
            FROM sys.databases
            ORDER BY name"
    $cmd = New-Object System.Data.SqlClient.SqlCommand $sql, $con
    $reader = $cmd.ExecuteReader();
    while ($reader.Read())
    {
    	Write-Host $reader.GetString(0);
    }
    
    $cmd.Dispose()
    $con.Close()
    $con.Dispose()

    Data Source musst Du entsprechend anpassen; ".\SQLEXPRESS" steht hier für eine lokal installiere benannte Instanz namens "SQLEXPRESS", der Standard-Name bei der Express Edition.

    Olaf Helper

    Blog Xing

    • Als Antwort markiert AucheinName Freitag, 23. November 2012 10:52
    Freitag, 23. November 2012 10:46

Alle Antworten

  • Hallo Armin,

    SMO zu verwenden, ist eine Möglichkeit, dazu muss dann aber SMO auf den Rechnern, wo Du es verwenden willst auch installiert sein; im Standard ist es nicht.

    Der SqlClient durch .Net aber schon und der ist auch leicht zu verwenden. Hier ein kleines Skript, um die Datenbank Namen auszugeben.

    # Öffnen einer SqlClient Verbindung 
    $con = New-Object Data.SqlClient.SqlConnection
    $con.ConnectionString = "Data Source=.\SQLEXPRESS;Initial Catalog=master;Integrated Security=True;"
    $con.Open()
    
    # New command and reader.
    $sql = "SELECT name
            FROM sys.databases
            ORDER BY name"
    $cmd = New-Object System.Data.SqlClient.SqlCommand $sql, $con
    $reader = $cmd.ExecuteReader();
    while ($reader.Read())
    {
    	Write-Host $reader.GetString(0);
    }
    
    $cmd.Dispose()
    $con.Close()
    $con.Dispose()

    Data Source musst Du entsprechend anpassen; ".\SQLEXPRESS" steht hier für eine lokal installiere benannte Instanz namens "SQLEXPRESS", der Standard-Name bei der Express Edition.

    Olaf Helper

    Blog Xing

    • Als Antwort markiert AucheinName Freitag, 23. November 2012 10:52
    Freitag, 23. November 2012 10:46
  • Hallo Olaf,

    vielen Dank für Deine schnelle Hilfe

    Gruß
    Armin

    Freitag, 23. November 2012 10:53