R:将完整的数据库从SQL Server复制/克隆到本地

gpi*_*ier 5 sql sql-server sqlite r

在R中,我与此数据库具有SQL Server连接:

在此处输入图片说明

这个答案,我知道这些水平是catalogs (=databases), schemas, and tables。如下代码:

library(odbc)
library(DBI)
library(RSQlite)
library(dbi)
confull <- odbc::dbConnect(odbc(), 
                           Driver = "SQL Server", 
                           Server = "XXX")
odbcListObjects(confull, schema="schema")
Run Code Online (Sandbox Code Playgroud)

产量:

         name    type
1     DBAInfo catalog
2 InBluePrism catalog
3      master catalog
4        msdb catalog
5      tempdb catalog
Run Code Online (Sandbox Code Playgroud)

问题:

  1. 我如何提取此数据库的完整结构树,而不仅是catalogs
  2. 如何通过编程方式将整个数据库(包括所有表,模式和目录)保存(克隆)到本地SQLite表中?

对于第一个问题,我尝试了以下方法:

> all_schemas <- DBI::dbGetQuery(confull, "SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA")
> all_schemas
                SCHEMA_NAME
1                       dbo
2                     guest
3        INFORMATION_SCHEMA
4                       sys
5              CCAutomation
6      XXXXXX\\xxxAdmin
7      XXXXXX\\z_swmon
8      NT AUTHORITY\\SYSTEM
9      XXXXXX\\z_Backup
10                 db_owner
11           db_accessadmin
12         db_securityadmin
13              db_ddladmin
14        db_backupoperator
15            db_datareader
16            db_datawriter
17        db_denydatareader
18        db_denydatawriter
Run Code Online (Sandbox Code Playgroud)

对于第二个问题,我尝试过:

  1. 在SQL Server中生成脚本,但是出现错误,而且我想保持此程序性。
  2. 仅保存所有给定的表dbListTables(confull),然后我丢失了有关这些表所属的目录和架构的信息。

编辑:以下链接 也包含有用的信息

tuk*_*kan 4

我不知道你的SQL Server是什么版本。我基于我所拥有的 SQL Server 2008 和 2016。

要获得 CLI 工具,您可以下载Export2SqlCE.zip

描述:

SQL Server 2005/2008 命令行实用程序,用于生成具有架构和数据(或仅架构)的 SQL Compact 或 SQLite 兼容脚本

下载后,您可以运行它以使用以下命令提取信息:

Export2SQLCE.exe "Data Source=(local);Initial Catalog=<your_database>;Integrated Security=True" your_database.sql sqlite 
Run Code Online (Sandbox Code Playgroud)