We're looking to iron out issues in our different dev/test/prod environments.
Currently we have to remember to change the name of linked servers in stored procedures when we migrate from UAT into Production. For example, in Production, a sproc in SMOLDB calls across a linked server to LS_AUTH.AuthenticationDB.dbo.SomeSproc because AuthenticationDB is on a different server. But in Dev and UAT SMOLDB and Authentication are on the same server.
To get around this risk, we're thinking we'll set up consistent references to linked servers in all our environments. So even in UAT we'd create a LS_AUTH linked server, and SMOLDB will still call LS_AUTH.AuthenticationDB.dbo.SomeSproc
Do calls to linked servers go out onto the network before they are resolved? Not sure if we want to impact network traffic in those cases when the two databases are on the same server and don't need to go through a Linked Server.
The idea of ServerVariables I guess is an option...