代码之家  ›  专栏  ›  技术社区  ›  gaut

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

  •  1
  • gaut  · 技术社区  · 5 年前

    enter image description here

    this answer 我知道这些水平 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")
    

    产量:

             name    type
    1     DBAInfo catalog
    2 InBluePrism catalog
    3      master catalog
    4        msdb catalog
    5      tempdb catalog
    

    问题:

    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
    

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

    1. 在SQLServer中生成脚本,但我得到了一个错误,而且我想保持这个编程。
    2. 只需保存 dbListTables(confull)

    编辑:以下内容 link 还包含有用的信息

    0 回复  |  直到 5 年前
        1
  •  4
  •   tukan    5 年前

    我不知道你有哪个版本的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 
    
        2
  •  1
  •   S Habeeb Ullah    5 年前

    我们可以使用Powerbuilder管道版本9/10/10.5取决于您的SQL服务器版本。数据库和数据将很容易地被迁移所有你必须知道的是创建ODBC/数据库连接这是几次点击的问题。

    通过定义从用户对象绘制程序中的内置管道对象继承的标准类用户对象来使用管道对象。然后,我们可以通过编写包含事件代码的脚本来访问管道事件。

    这就是我们如何通过编写脚本来执行管道。

    transaction SQLCAtarget // declare this variable as INSTANT variable
    
    SQLCA.DBMS = 'your source dbms name'
    SQLCA.Database = 'your source database name'
    SQLCA.LogId = 'your source database login id'
    SQLCA.LogPass = 'your source database password'
    SQLCA.ServerName = 'your source database server'
    CONNECT USING SQLCA;
    
    SQLCAtarget = CREATE transaction
    SQLCAtarget.DBMS = 'your target dbms name'
    SQLCAtarget.Database = 'your target database login id'
    SQLCAtarget.LogPass = 'your target database password'
    SQLCAtarget.ServerName = 'your target database server'
    SQLCAtarget.LogId = 'your target database login id'
    CONNECT USING SQLCAtarget;
    

    设置源数据库和目标数据库配置文件,选择表、列和条件,然后另存为pl\u mypipeline。

    to begin with, Click on pipeline button from powerbuilder

    Choose the source and target of Pipeline

    set the table, column and criteria of your pipeline

    save your pipeline

    integer iReturn
    pipeline myPipeline
    myPipeline = CREATE pipeline
    
    myPipeline.DataObject = "pl_mypipeline"
    iReturn = myPipeline.Start(SQLCA, SQLCAtarget, dw_1)
    
    // always disconnect your database connection
    DISCONNECT USING SQLCA;
    DISCONNECT USING SQLCAtarget;
    
    iReturn should have 0 (zero) value if the pipeline runs smoothly.