Hier einige Tipps, was sich mit dem Kommandozeilen-Tool "sqlcmd.exe" so alles anstellen lässt...
Verbindung herstellen
Wird kein spezielles Protokoll angegeben, wird die Reihenfolge verwendet, wie sie im SQL Server Konfigurations-Manager hinterlegt ist.
Es gibt zu diesem Thema auch ne extra Webseite von Microsoft:
http://msdn.microsoft.com/de-de/library/ms188247.aspx
Verbindung zum eigenen PC...
sqlcmd -S 127.0.0.1\Instanzname
oder
sqlcmd -S .\Instanzname
zu einem Remote-PC...
sqlcmd -S REMOTESERVER
oder
sqlcmd -S REMOTESERVER\Instanzname
Verbindung explizit über TCP/IP herstellen:
sqlcmd -S tcp:<computer name>,<port number>
z.B.
sqlcmd -S tcp:Server1:1433
Verbindung über Names Pipes herstellen:
Zu einem Remote-PC...
sqlcmd -S np:\\SERVERNAME\pipe\sql\query
bzw. bei einer benannten Instanz:
sqlcmd -S np:\\SERVERNAME\pipe\MSSQL$<Instanzname>\sql\query
für den Zugriff auf den eigenen PC:
sqlcmd -S np:\\.\pipe\MSSQL$<Instanzname>\sql\query
Befehle absetzen
Nachdem wir nun die Verbindung auf irgend eine dieser Möglichkeiten hergestellt haben, können wir nun Befehle absetzen.
Alle Datenbanken auflisten:
sp_databases
go
Eine Datenbank verwenden:
use datenbank1
go
Alle Tabellen auflisten:
sp_help
go
Jetzt können wir die Top 100 auslesen :-)
select top 100 * from Tabelle1
Befehle im Batch-Modus abarbeiten
Man kann auch eine SQL-Datei angeben, die dann abgearbeitet wird. Bietet sich z.B. an, wenn man eine Aufgabe regelmäßig ausführen lassen will:
Als Beispiel eine Abfrage, die am eigenen Server ausgeführt werden soll:
sqlcmd -S <Server\Instanzname> -d <Datenbank> -i abfrage.sql
Abfrage in eine Textdatei umleiten:
sqlcmd -S <Server\Instanzname> -d <Datenbank> -i abfrage.sql -o Ergebnis.txt
Die Datei abfrage.sql kann z.B. folgenden Inhalt haben:
select top 100 * from tabelle1
Verbindung trennen
Um SQLCMD wieder zu verlassen, reicht ein
exit