2017-06-20 67 views
0

我可以在数据库中找到尚未使用过的数据。exec sp_tables_ex在服务器上不会返回任何内容我可以使用exec sp_linkedservers

我已经看到了,这是使用链接的服务器:它返回服务器名,TheSRV沿着例如它的目录名称S100

exec sp_linkedservers 

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

为此,我尝试使用:

exec sp_tables_ex TheSRV 

但这仅返回头,没有任何数据。

我可以使用OPENQUERY这样做一个查询:

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

返回有效的数据。

当我找不到表格列表时,如何查找有关表格所需的信息?

+0

你是什么意思只有标题?你是在寻找表格列表,每个表格的列表列表,还是你在寻找一些从每个表格中选择几行的东西,这样你就可以看到示例数据了? – Bridge

+0

@Bridge只有头文件,我的意思是当我尝试使用Exec sp_tables_ex TheSRV时,我只能得到与该查询相关的头文件,即'TABLE_CAT','TABLE_SCHEM'三个之间,但没有与头文件相对应的数据。我想找出一张表格列表。 – Cenderze

回答

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