使用 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 所有表(和视图)可见。
我是 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 所有表(和视图)可见。