我有一个名为TEKLABEL的目录,一个名为PUB的模式,一个名为MstrShip的表
当我尝试查询我用过的表时
from PUB.MstrShip
并且系统给我错误:无效的对象名称“PUB.MstrShip”
那我该如何查询该表呢?
背景:我正在使用一台非常旧的Windows Server 2003 SP2,SQL服务器也很旧(SQL查询分析器版本8.00.2039)。当我使用ODBC查询工具v1.38查询表时,我使用“PUB.MstrShip”它可以执行并给我结果。但是当我想运行程序中指定的“PUB.MstrShip”的测试程序时,它会报告错误“无效的对象名称'PUB.MstrShip'”
这是SQL查询分析器连接字符串
这是配置文件
中的程序连接字符串这是结构
答案 0 :(得分:2)
尝试修改连接字符串以连接到teklable数据库,这应该只是程序中的一次手动更改。例如
"Provider=SQLOLEDB;Data Source=Your_Server_Name;Initial Catalog=TEKLABLE;UserId=Your_Username;Password=Your_Password;"
查看你的连接属性,我建议尝试tgolisch的建议,并将sqluser登录的默认数据库更改为teklable
您使用的是哪个版本的SQL Server?如果使用SSMS连接到服务器,请转到安全性>登录,然后您可以编辑SQLuser登录的属性,并更改默认数据库。
可能值得检查没有其他应用程序使用此登录,因为您的更改可能会破坏它们。一个更好的选择是创建一个名为TEKLABELuser的新登录,并将默认数据库设置为teklable
答案 1 :(得分:2)
在SQL Server中,您可以将登录的默认目录指定为TEKLABEL。然后您的查询应该按原样运行。否则,您可以在连接字符串中指定它,如JamieA所示。