SQL 2000, Object Owner Question

Environment: Microsoft SQL Server  2000 - 8.00.2039 (Intel X86)   May  3 2005 23:18:38   Copyright (c) 1988-2003 Microsoft Corporation  Developer Edition on Windows NT 5.2 (Build 3790: Service Pack 2)

 

Two logins on the system, sa and Fred.  Fred is a member of System Administrators.

 

Fred creates a new database, let’s call it Sales, done via a simple script in Query Analyzer (QA).

 

In Enterprise Manager (EM) when I right click on this database, select properties, I can see that Fred is the database owner.

 

Fred now creates a table with himself as the owner, something like the script below, this is done via QA with Fred as the user / login.

 


CREATE TABLE [Fred].[Customers] (

     …

)

GO
 

This is the only table in the database.

With Fred logged into QA, I’m expecting this select statement (A) to work.


SELECT * FROM Customers
 

But it errors out, with the following:

Server: Msg 208, Level 16, State 1, Line 1

Invalid object name 'Customers'.

 

The following select (B), does work.


SELECT * FROM Fred.CustomersI’ve got tons of Visual Basic 6 code that uses the select without the qualified database owner.  This code was written a long time ago, but now I’ve got to get back into it.   For some reason, the non-qualified select statement used to work and does work at many sites still running this code.  But in my development environment I get the “Invalid object name” error.  

I’d prefer to not change the VB6 code, seems like this should work, or at least used to work.

So, can I setup SQL so that when Fred logs in he can default to use the object he owns and successfully run statement A from above?
LVL 4
g_johnsonAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Guy Hengel [angelIII / a3]Billing EngineerCommented:
for system admins and db_owners, the object prefix defaults to dbo
and from what I know, you cannot change that behavior, except removing Fred as db owner ....
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
g_johnsonAuthor Commented:
Thanks, that did the trick.  We had assumed that "Fred" was always a sys admin, but we were wrong.
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Microsoft SQL Server

From novice to tech pro — start learning today.