sqlcmd not showing user databases

I'm trying to connect to my database via sqlcmd to run a query (sql file).
sqlcmd -s ServerName -E

Then I do a "USE MyDatabase -> GO"

Then I get this message

"Could not locate the entry in the sysdatabase for database 'MyDatabase'. No entry found with that name."

I can do a select * from sys.databases inside sqlcmd and I get the 4 system databases - but not any user ones. I can access everything just fine via management studio to the databases using the same windows auth - just not via sqlcmd. This acting the same for me for sql server 2005/2008/2008r2. All are patched and up to date.

Any ideas on how I can fix this?

Thanks!
LVL 7
rmm2001Asked:
Who is Participating?
 
cyberkiwiCommented:
Lower case -s is the column separator
Upper case -S is the server/instance
usage: Sqlcmd            [-U login id]          [-P password]
  [-S server]            [-H hostname]          [-E trusted connection]
  [-d use database name] [-l login timeout]     [-t query timeout]
  [-h headers]           [-s colseparator]      [-w screen width]
  [-a packetsize]        [-e echo input]        [-I Enable Quoted Identifiers]
  [-c cmdend]            [-L[c] list servers[clean output]]
  [-q "cmdline query"]   [-Q "cmdline query" and exit]
  [-m errorlevel]        [-V severitylevel]     [-W remove trailing spaces]
  [-u unicode output]    [-r[0|1] msgs to stderr]
  [-i inputfile]         [-o outputfile]        [-z new password]
  [-f <codepage> | i:<codepage>[,o:<codepage>]] [-Z new password and exit]
  [-k[1|2] remove[replace] control characters]
  [-y variable length type display width]
  [-Y fixed length type display width]
  [-p[1] print statistics[colon format]]
  [-R use client regional setting]
  [-b On error batch abort]
  [-v var = "value"...]  [-A dedicated admin connection]
  [-X[1] disable commands, startup script, enviroment variables [and exit]]
  [-x disable variable substitution]
  [-? show syntax summary]

Open in new window

0
 
cyberkiwiCommented:
Are you running multiple SQL Server instances?
0
 
cyberkiwiCommented:
Run this in SQLCMD and then in SSMS

select @@SERVERNAME
0
Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

 
rmm2001Author Commented:
Yes to the instances. I have 3 of them up. When I do @@SERVERNAME in ssms it bring back the name of that instance
0
 
cyberkiwiCommented:
sqlcmd can also connect to instances:

sqlcmd -S ServerName\Instance -E

(use upser case -S)
0
 
rmm2001Author Commented:
The capital 'S' worked! And my file ran! Thank you so much!
0
 
rmm2001Author Commented:
it works!
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.