I've been asked to make some changes in an old asp-classic application. The production server and the server they use for testing and dev or over 20 routers away and the lag time between my typing and then seeing the type is horrible. So I set up a server here, just like theirs (MS Server 2008) installed MS SQL Server 2008 R2. I thought I configured my database just like theirs. They have 100s of thousands of lines of old vbscript.
I backed up the test database on the remote side, copied it over to my server and restored it there. I copied the body of script they have over. Site is up and running. But.... Anything that requires a query to the database creates the error "Invalid object name 'atable'. Looking at their code and there isn't a fully qualified name anywhere. I log on to the remote server start up Management Studio and sure enough you dont need fully qualified names to make any queries. I asked them if I could change all the code to use fully qualified names and the answer was no. I asked how they had configured the database, and the answer was a former contractor set it up that way. (and they like it)
So my questions; is there a configuration option in MS SQL Server 2008 to default to not using fully qualified names? How could they get around not using database, owner, schema in their code? I login as the application user and that doesnt seem to help as well.
Please, I know we should use fully qualified names as best practices. I've read the comments concerning performance gains/losses. Their database instance uses a schema name when you automatically script out a create database script. If I use that schema name to preface table names all is good. They just dont want me doing that in any script I edit or create for them.