2017-06-20 45 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