Sql server exec sp_tables_ex在使用exec sp_linkedserver可以找到的服务器上不返回任何内容

Sql server exec sp_tables_ex在使用exec sp_linkedserver可以找到的服务器上不返回任何内容,sql-server,linked-server,openquery,Sql Server,Linked Server,Openquery,我正试图在一个数据库中找到数据,而这个数据库并没有被使用太多 我看到它是一个链接服务器,使用: exec sp_linkedservers 它返回服务器名,例如其目录名S100 然后,我尝试查找链接服务器中存在哪些表的相关信息,TheSRV 为此,我尝试使用: exec sp_tables_ex TheSRV 但这只返回标题,不返回任何数据 我可以使用openquery进行如下查询: Select name, date From OPENQUERY(TheSRV, 'Select Name,

我正试图在一个数据库中找到数据,而这个数据库并没有被使用太多

我看到它是一个链接服务器,使用:

exec sp_linkedservers
它返回服务器名,例如其目录名
S100

然后,我尝试查找链接服务器中存在哪些表的相关信息,
TheSRV

为此,我尝试使用:

exec sp_tables_ex TheSRV
但这只返回标题,不返回任何数据

我可以使用openquery进行如下查询:

Select name, date From OPENQUERY(TheSRV, 'Select Name, Date from S100.F1.TableName')
返回有效数据


当我找不到表列表时,如何才能找到所需的有关当前表的信息?

您应该能够使用列出架构对象的标准方法之一,将服务器名称限定为四部分命名约定的一部分:

SELECT *
FROM   TheSRV.S100.INFORMATION_SCHEMA.TABLES T
WHERE  T.TABLE_TYPE = 'BASE TABLE'
要查看每个表中的列,请执行以下操作:

SELECT C.*
FROM   TheSRV.S100.INFORMATION_SCHEMA.TABLES T
       INNER JOIN TheSRV.S100.INFORMATION_SCHEMA.COLUMNS C
               ON T.TABLE_NAME = C.TABLE_NAME
                  AND T.TABLE_SCHEMA = C.TABLE_SCHEMA
WHERE  T.TABLE_TYPE = 'BASE TABLE'
ORDER BY C.TABLE_NAME, C.ORDINAL_POSITION

你说的只有标题是什么意思?您是在寻找表列表、每个表的列列表,还是在寻找从每个表中选择几行以便查看示例数据的内容?@Bridge仅包含标题我的意思是,当我尝试使用Exec sp_tables_exRV时,我只获得与该查询相关的标题,即
TABLE_CAT
TABLE_SCHEM
在另外三个模式中,但没有与标题对应的数据。我想找出一张桌子的清单。