В твоем случае:

опрос, как я могу использоватьdplyr функции, такие какtblв таблицах SQL Server, которые не используют схему "dbo" по умолчанию?

Для большего контекста я пытаюсь применить приведенный здесь пример базы данных R к моим собственным таблицам:https://db.rstudio.com/ (прокрутите вниз до раздела «Быстрый пример»).

Все начинается хорошо. Этот первый раздел работает нормально:

install.packages("dplyr")
install.packages("odbc")
install.packages("dbplyr")
install.packages("DBI")

con <- DBI::dbConnect(odbc::odbc(),
                   Driver    = "SQL Server", 
                   Server    = [My Server Name],
                   Database  = "mydatabase",
                   UID       = [My User ID],
                   PWD       = [My Password],
                   Port      = 1433)

Я могу подключиться к моему SQL Server и загрузить таблицы в моей базе данных. Я знаю это, потому что

DBI::dbListTables(con)

возвращает имена моих доступных таблиц (но без какой-либо схемы).

Следующая строка примера кода также работает при применении к одной из моих собственных таблиц, возвращая имена столбцов в таблице.

DBI::dbListFields(con, "mytable1")

Однако, как только я пытаюсь запустить следующую строку:

dplyr::tbl(con, "mytable1")

Я получаюInvalid object name 'mytable1' ошибка, а не ожидаемый предварительный просмотр таблицы, как в примере.

Эта ошибка не возникает, когда я запускаю один и тот же код в другой таблице, mytable2. На этот раз, как и ожидалось, я получаю предварительный просмотр mytable2 при запуске:

dplyr::tbl(con, "mytable2")

Одно из различий между mytable1 и mytable2 заключается в схеме. mytable1 использует готовую схему "abc", т.е.mydatabase.abc.mytable1, mytable2 использует схему "dbo" по умолчанию, т.е.mydatabase.dbo.mytable2.

Я старалсяdplyr::tbl(con, "abc.mytable1") но я получаю то же самоеInvalid object name ошибка. Точно так же, когда я пыталсяdplyr::tbl(con, "dbo.mytable2") (хотя он работает нормально, когда я исключаюdbo часть).

Так как я могу использоватьdplyr функции, такие какtblв таблицах SQL Server, которые не используют схему "dbo" по умолчанию? Благодарю.

Ответы на вопрос(1)

Ваш ответ на вопрос