Solved

Using bcp to connect to SQL 2005 Express named instance

Posted on 2010-09-21
14
2,760 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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
Microsoft Certification Exam 74-409

Veeam® is happy to provide the Microsoft community with a study guide prepared by MVP and MCT, Orin Thomas. This guide will take you through each of the exam objectives, helping you to prepare for and pass the examination.

 

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 250 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

Comparison of Amazon Drive, Google Drive, OneDrive

What is Best for Backup: Amazon Drive, Google Drive or MS OneDrive? In this free whitepaper we look at their performance, pricing, and platform availability to help you decide which cloud drive is right for your situation. Download and read the results of our testing for free!

Question has a verified solution.

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

In this article we will get to know that how can we recover deleted data if it happens accidently. We really can recover deleted rows if we know the time when data is deleted by using the transaction log.
The Delta outage: 650 cancelled flights, more than 1200 delayed flights, thousands of frustrated customers, tens of millions of dollars in damages – plus untold reputational damage to one of the world’s most trusted airlines. All due to a catastroph…
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 to return specific rows and columns, with various degrees of sorting and limits in place.

707 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