首页 > 解决方案 > 找出表的架构

问题描述

我连接到数据库,当我执行此查询时:

SELECT table_name FROM information_schema.tables

我得到一个清单:

       table_name
1      dt_2019
2      dt_2020

但我想找出表“dt_2019”所在的架构,所以我可以进行以下查询:

SELECT dt_2019 FROM schema_that_i_don't_know

期望的结果将是该表 dt_2019

我怎么能这样做?

标签: sqlr

解决方案


我推断当您说“找出架构”时,您的意思是目录、架构、名称等……还有另一个您可以经常使用的元表。在 SQL Server 中,至少,有:

# con <- DBI::dbConnect(...)
str(DBI::dbGetQuery(con, "
  select *
  from information_schema.columns
  where table_name = 'r2test'"))
# 'data.frame': 3 obs. of  23 variables:
#  $ TABLE_CATALOG           : chr  "mydb" "mydb" "mydb"
#  $ TABLE_SCHEMA            : chr  "db_owner" "db_owner" "db_owner"
#  $ TABLE_NAME              : chr  "r2test" "r2test" "r2test"
#  $ COLUMN_NAME             : chr  "a" "b" "c"
#  $ ORDINAL_POSITION        : int  1 2 3
#  $ COLUMN_DEFAULT          : chr  NA NA NA
#  $ IS_NULLABLE             : chr  "YES" "YES" "YES"
#  $ DATA_TYPE               : chr  "int" "nvarchar" "real"
#  $ CHARACTER_MAXIMUM_LENGTH: int  NA -1 NA
#  $ CHARACTER_OCTET_LENGTH  : int  NA -1 NA
#  $ NUMERIC_PRECISION       : int  10 NA 24
#  $ NUMERIC_PRECISION_RADIX : int  10 NA 2
#  $ NUMERIC_SCALE           : int  0 NA NA
#  $ DATETIME_PRECISION      : int  NA NA NA
#  $ CHARACTER_SET_CATALOG   : chr  NA NA NA
#  $ CHARACTER_SET_SCHEMA    : chr  NA NA NA
#  $ CHARACTER_SET_NAME      : chr  NA "UNICODE" NA
#  $ COLLATION_CATALOG       : chr  NA NA NA
#  $ COLLATION_SCHEMA        : chr  NA NA NA
#  $ COLLATION_NAME          : chr  NA "SQL_Latin1_General_CP1_CI_AS" NA
#  $ DOMAIN_CATALOG          : chr  NA NA NA
#  $ DOMAIN_SCHEMA           : chr  NA NA NA
#  $ DOMAIN_NAME             : chr  NA NA NA

推荐阅读