36

How do I list all the databases for a given sql server 08 instance using sqlcmd?

Dane O'Connor
  • 71,622
  • 37
  • 116
  • 167

4 Answers4

44
sqlcmd -E -S SERVER\INSTANCE -Q "sp_databases"

Notes:

  • -E: Use a trusted connection ("Windows authentication"). Replace by -U username -P password for SQL Server authentication.
  • -S SERVER\INSTANCE: The instance of SQL Server to which to connect. If you don't know the name of your instance, you can use sqlcmd -L to get a list.
  • -Q: The query to execute. The uppercase Q causes sqlcmd to exit after executing the query.
Heinzi
  • 159,022
  • 53
  • 345
  • 499
35

To elaborate with more detail for the sqlcmd newbie:

C:\> sqlcmd -S <the_server_name>
1> select name from sys.databases
2> go
Shaun Luttin
  • 121,071
  • 74
  • 369
  • 447
32
EXEC sp_databases

or

SELECT NAME FROM sys.sysdatabases

or

EXEC sp_msForEachDB 'PRINT ''?''';
D'Arcy Rittich
  • 160,735
  • 37
  • 279
  • 278
  • Up voted for options but accepted Heinzi because it includes the sqlcmd aspect. Thanks! – Dane O'Connor Jan 18 '10 at 17:32
  • 5
    I'm a newb and may be stating the obvious here, but I had to do 'go' after the EXEC line like this `1>EXEC sp_databases2>go` – barlop Jul 01 '15 at 20:15
3

You can use sp_databases stored procedure.

Giorgi
  • 29,755
  • 12
  • 86
  • 122