Como usar o dplyr tbl em uma tabela de esquema não padrão do SQL Server

Minha pergunta é como posso usardplyr funções, comotbl, em tabelas do SQL Server que não usam o esquema "dbo" padrão?

Para mais contexto, estou tentando aplicar o exemplo de banco de dados R dado aqui às minhas próprias tabelas:https://db.rstudio.com/ (role para baixo até a seção intitulada "Exemplo rápido").

Tudo começa bem. Esta primeira seção funciona bem:

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)

Consigo me conectar ao meu SQL Server e carregar as tabelas no meu banco de dados. Eu sei disso porque

DBI::dbListTables(con)

retorna os nomes das minhas tabelas disponíveis (mas sem nenhum esquema).

A próxima linha de código de exemplo também funciona quando aplicada a uma de minhas próprias tabelas, retornando os nomes das colunas na tabela.

DBI::dbListFields(con, "mytable1")

No entanto, uma vez que tento executar a próxima linha:

dplyr::tbl(con, "mytable1")

Eu recebo umInvalid object name 'mytable1' erro, em vez da visualização esperada da tabela, como no exemplo.

Este erro não ocorre quando executo o mesmo código em uma tabela diferente, mytable2. Desta vez, como esperado, recebo uma prévia do mytable2 quando executo:

dplyr::tbl(con, "mytable2")

Uma diferença entre mytable1 e mytable2 é o esquema. mytable1 usa um esquema "abc" inventado, ou seja,mydatabase.abc.mytable1. mytable2 usa o esquema "dbo" padrão, ou seja,mydatabase.dbo.mytable2.

eu tenteidplyr::tbl(con, "abc.mytable1") mas eu recebo o mesmoInvalid object name erro. Da mesma forma, quando eu tenteidplyr::tbl(con, "dbo.mytable2") (embora funcione bem quando excluo odbo parte).

Então, como posso usardplyr funções, comotbl, em tabelas do SQL Server que não usam o esquema "dbo" padrão? Obrigado.

questionAnswers(1)

yourAnswerToTheQuestion