使用 R DBI 包获取完整的 "path" of SQL 表

Get full "path" of SQL tables with R DBI package

我是 SQL 的新手,所以我不知道正确的措辞,抱歉。

当我与DBI包的dbConnect建立连接时,我可以列出数据库的所有表:

> head(dbListTables(conn))
[1] "cdw_apps"                   "cdw_attachments"           
[3] "cdw_auditLogs"              "cdw_blueprints"            
[5] "cdw_businessObjects"        "cdw_businessObjectsActions"

但是我不能直接访问这些表,它们是嵌套的(在某种“文件夹”中,我也不知道措辞)。

例如我必须做的:

dbGetQuery(
  conn, 
  "select top 100 * from [vxda-prod-sqldw01].[vxrd_cdw].[cdw_apps]"
)

是否可以列出表格及其“路径”(我的意思是 [vxda-prod-sqldw01].[vxrd_cdw].[cdw_apps] 而不仅仅是 cdw_apps)?

大多数数据库支持 information_schema.tables(我相信 .columns.routines 和其他数据库),SQL 服务器也在其中。虽然在 T-SQL 中有更新的对象发现 tables/mechanisms,但这些仍然有效并且足以满足此需求。

例如,

DBI::dbGetQuery(conn, "select * from information_schema.tables")
#   TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE
# 1     mycatalog          dbo     table1 BASE TABLE
# 2     mycatalog          dbo     table2 BASE TABLE
# 3     mycatalog          dbo   someview       VIEW

将 return 所有表(和视图)可见。