我正在尝试在数据库中查找尚未使用过多的数据。
我已经看到它是一个链接服务器使用:
exec sp_linkedservers
返回服务器名TheSRV
以及例如其目录名S100
。
然后,我尝试查找有关链接服务器TheSRV
中存在哪些表的信息。
为此,我尝试使用:
exec sp_tables_ex TheSRV
但这只返回标题,没有任何数据。
我可以使用这样的openquery进行查询:
Select name, date From OPENQUERY(TheSRV, 'Select Name, Date from S100.F1.TableName')
返回有效数据。
当我找不到表格列表时,如何找到关于表格所需的信息?
答案 0 :(得分:1)
您应该能够使用列出架构对象的标准方法之一,将服务器名称限定为四部分命名约定的一部分:
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