避免具有相同名称但具有不同所有者的SQL Server 2005表

SQL Server 2005的这种行为最可能的原因是什么?

testing#1:

我运行Management Studio Express,使用“windows身份validation”连接到本地数据库,并看到我有1个数据库和1个名为dbo.MyTable的表。

运行“SELECT * FROM MyTable”(和dbo.MyTable)显示它存在,但是是空的。


testing#2:

我重新运行Management Studio Express,使用“sql身份validation”myLogin / myPassword连接到我的数据库1,并看到我有一个dbo.MyTable。

运行“SELECT * FROM MyTable”(和dbo.MyTable)给出:

Msg 229, Level 14, State 5, Line 2 The SELECT permission was denied on the object 'MyTable', database 'master', schema 'dbo'. 

testing#3:

运行一些常见的vb.net代码,使用我的SQL身份validationmyLogin / myPassword,显示我可以读写MyTable,没有任何问题….表中包含100个好logging。

我真的有2-3个不同的桌子吗? (我只需要1.)我真的不需要有“多个表,同名,但我不同的所有者”。

这里发生了什么?

您给出的错误指出,使用SQL身份validation的Management Studio Express连接尝试查询master数据库中的MyTable。 我非常怀疑,这是你想要使用的数据库。

在pipe理工作室确保你select你的数据库。 您可以使用工具栏中的下拉菜单,或者假定您的数据库名为MyDatabase,则可以执行USE命令,然后执行SELECT。

 USE MyDatabase SELECT * FROM MyTable 

你的VB.NET应用程序的连接string可能已经在这个设置。 它将是database属性或initial catalog属性,值将是MyDatabase。