R RODBC显示所有表格
我正在尝试使用R/RODBC对MSSQL 2008 R2数据库的结构进行编目。我已经设置了一个DSN,通过R连接并使用sqlTables命令,但这只是获取“系统数据库”信息R RODBC显示所有表格,r,odbc,rodbc,R,Odbc,Rodbc,我正在尝试使用R/RODBC对MSSQL 2008 R2数据库的结构进行编目。我已经设置了一个DSN,通过R连接并使用sqlTables命令,但这只是获取“系统数据库”信息 library(RODBC) conn1 <- odbcConnect('my_dsn') sqlTables(conn1) 但是,如果我这样做: library(RODBC) conn1 <- odbcConnect('my_dsn') sqlQuery('USE my_db_1') sqlTables(
library(RODBC)
conn1 <- odbcConnect('my_dsn')
sqlTables(conn1)
但是,如果我这样做:
library(RODBC)
conn1 <- odbcConnect('my_dsn')
sqlQuery('USE my_db_1')
sqlTables(conn1)
我得到了和my_db_1数据库关联的表。有没有一种方法可以查看所有的数据库和表,而无需手动为每个数据库和表键入单独的USE语句?有没有一种更惯用的方法可以直接在SQL中执行此操作,但我们可以通过编程将所有数据库中的所有表的数据集拼凑在一起,而不是重复使用xyz;语句,从master..sysdatabases获取数据库列表,并将其作为catalog参数传递给sqlTables 出于保密原因,我无法显示任何输出,但它会生成正确的结果。当然,在你的情况下,你可能想做一些
all_metadata <- lapply(db_list$name, function(DB) {
RODBC::sqlTables(
channel = tcon,
catalog = DB
)
})
# or some more efficient variant of data.table::rbindlist...
meta_df <- do.call("rbind", all_metadata)
此SQL将获得所有数据库的列表:从master..sysdatabases中选择名称@太好了,谢谢。@nrussell:你想把它放在答案里,我来选择它?
all_metadata <- lapply(db_list$name, function(DB) {
RODBC::sqlTables(
channel = tcon,
catalog = DB
)
})
# or some more efficient variant of data.table::rbindlist...
meta_df <- do.call("rbind", all_metadata)