Общая информация
Прежде всего, подумайте о чтении архитектуры реляционных баз данных, в которой таблицы инкапсулированы в схемы, которые сами инкапсулированы в базы данных, которые затем инкапсулируются в серверы или кластеры. Обратите внимание, что значки на вашем изображении соответствуют типу объекта:
cluster/server < catalog/database < schema/namespace < table
Следовательно, в вашей ситуации нет вложенных таблиц, но есть типичная архитектура:
myserver < QnRStore < dbo < BGBURef
Чтобы получить доступ к этой архитектуре изНа уровне сервера в запросе SQL вы должны использовать имена, определяющие период:
SELECT * FROM database.schema.table
SELECT * FROM QnRStore.dbo.BGBURef
Схема по умолчанию для SQL Server - dbo
(для сравнения для Postgres - public
). Обычно DB-API, такие как R odbc
, подключаются к базе данных, которая позволяет подключаться к любым базовым схемам и соответствующим таблицам, при условии, что подключенный пользователь имеет доступ к таким схемам. Обратите внимание, что это правило не обобщается. Например, схема Oracle совпадает с владельцем, а база данных MySQL является синонимом схемы.
См. Также:
Особый случай
Поэтому, чтобы подключиться к таблице базы данных SQL Server в схеме по умолчанию, просто обратитесь к таблице BGBURef
, которая предполагает, что таблица находится в схеме dbo
вашей подключающейся базы данных.
df <- dbReadTable(con, "BGBURef")
Если вы используете схему не по умолчанию, вам нужно будет указать ее соответственно, что в последнее время вы можете сделать с DBI::Id
и можете использовать ее аналогично для dbReadTable
и dbWriteTable
:
s <- Id(schema = "myschema", table = "mytable")
df <- dbReadTable(con, s)
dbWriteTable(conn, s, mydataframe)
Кроме того, вы можете запустить требуемый период SQL-запроса:
df <- dbGetQuery(con, "SELECT * FROM [myschema].[mytable]")
И вы можете использовать SQL()
для записи в постоянные таблицы:
dbWriteTable(con, SQL("myschema.mytable"), mydataframe)