gpt4 book ai didi

sql-server - 复制 SQL Server 2016 db 的内容

转载 作者:行者123 更新时间:2023-12-02 18:17:46 25 4
gpt4 key购买 nike

我想通过脚本复制数据库的全部内容:两个 SQL Server 服务器之间的模式和数据,最好嵌入在 linux docker 镜像中。
副本将在测试环境中用于测试目的。
我有几个限制:

  • 我能够访问通过 sqlcmd 协议(protocol)选择的数据库。
  • 我无权访问服务器上的文件
  • 我想从linux执行脚本

  • 我丢弃了哪些解决方案:
  • 备份(bak)文件,因为我没有文件访问权限。
  • Bacpac - 根据 docs我没有必要的权限。

  • 我认为可能有效但似乎过度设计:
  • 使用sqlpackage创建 DAC 文件,因为它在 linux 上可用。
  • 使用 dac 更新目标数据库的结构
  • 使用来自 Mssql Tools 的 bcp复制数据。

  • 由于结构更新失败,解决方案可能会失败。
    还有其他我忽略的选择吗?
    还是更好的主意?
    编辑:
    我已经实现了上述解决方案( sqlpackage + bcp )并将其 dockerized HERE , 全部在 linux 上。
    尽管如此,寻找更好的方法。

    最佳答案

    您是否尝试过使用 Microsoft 的 MSSQL-Scripter Tool? This site使用 MSSQL-Scripter 和 python 从 CLI 转储模式和/或数据的详细信息。
    他们的一些代码示例:
    将架构写入文件:

    mssql-scripter -S .\sql2016 -d WideWorldImporters --include-objects sales.CustomerCategories -f c:\test\sales_CustCategory.sql  
    向控制台显示数据:
    mssql-scripter -S .\sql2016 -d WideWorldImporters --data-only --include-objects sales.CustomerCategories

    关于sql-server - 复制 SQL Server 2016 db 的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62877740/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com