exec sp_tables_ex returns 在我使用 exec sp_linkedservers 找不到的服务器上没有任何内容

exec sp_tables_ex returns nothing on a server I can find using exec sp_linkedservers

我正在尝试在数据库中查找未经常使用的数据。

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

exec sp_linkedservers

其中 returns 服务器名称,TheSRV 及其目录名称 S100

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

为此我尝试使用:

exec sp_tables_ex TheSRV

但是这个returns只有headers,没有任何数据。

我可以像这样使用 openquery 进行查询:

Select name, date From OPENQUERY(TheSRV, 'Select Name, Date from S100.F1.TableName')

哪个returns有效数据。

当我找不到表格列表时,如何才能找到我需要的关于现有表格的信息?

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

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