views:

2479

answers:

2

Working on a common codebase, one developer is running SQL Server Express 2005 and the other 2 are running SQL Server 2005. Everything is working fine, but the connection strings differ. To maintain common configuration and build scripts we're looking to mask "localhost\sqlexpress" to just "localhost" like the other 2 developers.

Can this be done? Or, maybe there's a better way for all 3 to run on the same connection string... The solution sought is for all 3 to be able to run on the same file versions in the code repository.

I might not be 100% clear: basically I want this:

Data Source=localhost;Initial Catalog=Sample;Integrated Security=True

to connect the exact same as this:

Data Source=localhost\sqlexpress;Initial Catalog=Sample;Integrated Security=True

If at all possible... :D

A: 

You can name SQL Server instances to anything you want. I'm pretty sure you can do it in SQL Express as well, so just name the instance, on each machine, to the same name, then you can just use localhost\<name>.

Or even better, don't hardcode the database name. Load it from some machine or user-specific setting (registry, config file, whatever suits your fancy :) ).

Danut Enachioiu
+16  A: 

Just tested things out and got it working.

sql express doesnt enable tcp/ip by default and when enabled doesnt use the default port 1433.

to make this happen you need to open up "Sql server configuration manager" then under protocols enable tcp/ip. after that double click "tcp/ip", select the "IP Addresses" tab and scroll to the bottom then blank the "TCP Dynamic Ports" and enter 1433 under TCP Port.

after all that restart the sql server service and it should work with the normal connection string.

John Boker
I love StackOverflow. Thank you!
kamens
Thanks John - and thanks to your evil monkey too.An additional problem that I had was that the service. "SQL Server Browser" Was not running. It allows for outside connections.
Kieran
Just what I was looking for - thank you very much!
RemotecUk