This issue goes beyond ClickOnce, it's a general networking issue.
The first question is: Can you reach the SQL Server at all from home?
Most likely the answer is "no" if the SQL Server is on an internal company network. You would need to set up a VPN in order to reach the server. If you set up a VPN, then you should be able to use the same connection string from home as long as you fully-qualify the server names, i.e. SqlServer.mycompany.local
as opposed to just SqlServer
. You would likely connect to the VPN using domain credentials, so you would be able to use the same connection strings.
But an even better way would be to use a wrapper such as WCF Data Services. This will expose the data through a Web Service (WCF) and gives you a lot of functionality - you can write Linq against it and everything. In the long run, this is probably going to be easier to work with if you expect the application to be used remotely.
In our case, we actually have business services - a fairly large API that provides business logic over Web Services as opposed to just wrapping database tables (call it an SOA if you like). In the super-long term, this is the best option because it abstracts a logical API as opposed to a database, but if you're looking for a quick fix, WCF Data Services might be the way to go.