Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
?
Solved

Using bcp to connect to SQL 2005 Express named instance

Posted on 2010-09-21
14
Medium Priority
?
2,946 Views
Last Modified: 2012-06-21
I have multiple SQL Express installations on a machine (as well as a SQL 2008 installation)

On the SQL Express named instance that I wish to bcp into (e.g. MyInstance), I have attached a database and the database is appearing under management studio as  e.g. "C:\SQL\Data\MyDB.dbf"

The instance is set to mixed mode authentication and I can connect to the instance in SQL Server Management Studio using Windows Authentication.  Note that the database name of the attached database is showing as "C:\SQL\Data\MyDB.mdf" listed under Databases in the SQL 2005 Express instance.

So I try to bcp in using the following command:

bcp MyDB.dbo.Test in "c:\SQL\Data\Test.txt" -c -S MyPC\MyInstance -T

but I get:

SQLState = 37000, NativeError = 4060
Error = [Microsoft][SQL Native client][SQL Server]Cannot open database "MyDB" requested by the login. The login failed.

SQLState = 28000, NativeError = 18456
Error = [Microsoft][SQL Native client][SQL Server]Login failed for user 'MyDomain\myuser\'

Can somebody please provide me with the correct parameters to use for this bcp operation.

Thanks
0
Comment
Question by:fujih
  • 7
  • 4
  • 3
14 Comments
 
LVL 7

Expert Comment

by:mmr159
ID: 33724302
I often use named instances... sometimes you have to specify the port.  Try:

bcp MyDB.dbo.Test in "c:\SQL\Data\Test.txt" -c -S MyPC\MyInstance,1433 -T

(Assuming default port)
0
 
LVL 143

Expert Comment

by:Guy Hengel [angelIII / a3]
ID: 33724330
>Error = [Microsoft][SQL Native client][SQL Server]Cannot open database "MyDB" requested by the login. The login failed.

means that your windows login cannot connect to that database...
you said you attached the db... did you "fix" the login "links" ?
http://msdn.microsoft.com/en-us/library/aa259633%28SQL.80%29.aspx
0
 

Author Comment

by:fujih
ID: 33724351
But I can connect to the SQL Express instance using the same user in trusted mode via the Management Console and can query the database there
0
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

 

Author Comment

by:fujih
ID: 33724406
mmr159,

If my PC name contains a hyphen e.g. myPC-DEV do I need to enclose in quotation marks.  Also what should I use for MyDB as in Management Studio it is appearing as "C:\SQL\Data\MyDB.mdf" under Databases.

Should I use:

bcp "C:\SQL\Data\MyDB.mdf".dbo.Test in "c:\SQL\Data\Test.txt" -c -S "myPC-DEV/myInstance".1433 -T

If I that in the command window just shows the bcp usage information
0
 
LVL 143

Expert Comment

by:Guy Hengel [angelIII / a3]
ID: 33724432
yes, the "-" will require the double quotes.
0
 

Author Comment

by:fujih
ID: 33724651
After I have change the bcp command to:

bcp MyDB.dbo.Test in "c:\SQL\Data\Test.txt" -c -S "myPC-DEV/myInstance" -T

I am getting:

SQLState = 08001, NativeError = -1
Error = [Microsoft][SQL Native client]SQL Network Interfaces: Error Locating Server/Instance specified [xFFFFFFFF].

SQLState = 08001, NativeError = -1
Error = "Microsoft][SQL Native client]An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections.

SQLState = S1T00, NativeError = 0
Error = [Microsoft][SQL Native client]Login timeout expired


I am running the bcp command on the same machine that the the SQL Express instance is installed upon
0
 
LVL 143

Expert Comment

by:Guy Hengel [angelIII / a3]
ID: 33724663
use \ instead of / for the instance name


bcp MyDB.dbo.Test in "c:\SQL\Data\Test.txt" -c -S "myPC-DEV\myInstance" -T

Open in new window

0
 

Author Comment

by:fujih
ID: 33724719
Sorry that was a typo I am already using

bcp MyDB.dbo.Test in "c:\SQL\Data\Test.txt" -c -S "myPC-DEV\myInstance" -T

and get


SQLState = 08001, NativeError = -1
Error = [Microsoft][SQL Native client]SQL Network Interfaces: Error Locating Server/Instance specified [xFFFFFFFF].

SQLState = 08001, NativeError = -1
Error = "Microsoft][SQL Native client]An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections.

SQLState = S1T00, NativeError = 0
Error = [Microsoft][SQL Native client]Login timeout expired
0
 
LVL 7

Expert Comment

by:mmr159
ID: 33725021
Did you try specifying the port?

server\instance[comma]port_num

Example:
bcp MyDB.dbo.Test in "c:\SQL\Data\Test.txt" -c -S "myPC-DEV\myInstance,1433" -T
0
 

Author Comment

by:fujih
ID: 33725046
Yes when I use
bcp MyDB.dbo.Test in "c:\SQL\Data\Test.txt" -c -S "myPC-DEV\myInstance,1433" -T

I get the same errors:
SQLState = 08001, NativeError = -1
Error = [Microsoft][SQL Native client]SQL Network Interfaces: Error Locating Server/Instance specified [xFFFFFFFF].

SQLState = 08001, NativeError = -1
Error = "Microsoft][SQL Native client]An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections.

SQLState = S1T00, NativeError = 0
Error = [Microsoft][SQL Native client]Login timeout expired
0
 
LVL 7

Accepted Solution

by:
mmr159 earned 1000 total points
ID: 33725119
I am now leaning towards something in your surface area configuration.  Try connecting by IP:

IP_address\instance

Also try connecting with SQL authentication.

http://support.microsoft.com/kb/195566

If that fails, try Programs -> ... -> SQL -> Configuration Tools -> SQL Server Surface Area Configuration

http://www.databasejournal.com/features/mssql/article.php/3692831/SQL-Server-2005-Express-Edition---Part-4---Surface-Area-Configration.htm
0
 

Author Closing Comment

by:fujih
ID: 33725807
mmr159,

Once I had used SQL Server Surface Area Configuration to change Remote Connections to 'Local and Remote Connections', the bcp operation worked.

Still unclear though why I needed to change this when I was running the bcp operation from the same machine that the SQL Express instance was installed upon
0
 
LVL 7

Expert Comment

by:mmr159
ID: 33725906
Glad it worked.

Not certain, but it could be because you specified

computername\instance

perhaps the following would have worked

.\SQLEXPRESS
- or -
(local)\SQLEXPRESS
0
 

Author Comment

by:fujih
ID: 33725934
I had already tried .\SQLExpress and local\SQLExpress prior to enabling Remote Connections on the SQL Express instance and had the same error.

Maybe bcp needs remote connections enabled to work?
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In part one, we reviewed the prerequisites required for installing SQL Server vNext. In this part we will explore how to install Microsoft's SQL Server on Ubuntu 16.04.
This shares a stored procedure to retrieve permissions for a given user on the current database or across all databases on a server.
Viewers will learn how to use the INSERT statement to insert data into their tables. It will also introduce the NULL statement, to show them what happens when no value is giving for any given column.
Viewers will learn how to use the SELECT statement in SQL and will be exposed to the many uses the SELECT statement has.
Suggested Courses

580 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question