如何查询Catalog - schema - 表结构中的表?

时间:2014-06-24 14:20:37

标签: sql sql-server

我有一个名为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'”

enter image description here 这是SQL查询分析器连接字符串

enter image description here 这是配置文件

中的程序连接字符串

enter image description here 这是结构

2 个答案:

答案 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所示。