gpt4 book ai didi

sql - 如何将架构和一些数据从 SQL Server 复制到另一个实例?

转载 作者:行者123 更新时间:2023-12-03 01:02:00 27 4
gpt4 key购买 nike

我的产品使用 SQL Server 数据库 - 每个客户端在自己的 Intranet 上都有自己部署的实例。该数据库有大约 200 个表。其中大多数是只有几行的配置表,但也有一些事务数据表可能有几百万行。我经常需要解决客户的配置问题,因此我需要他们的数据库副本以便在我的开发系统上本地使用...但是,由于交易数据,它可能非常大,这使得客户很难发送我是一个可以一起工作的备份。我需要一种方法来备份/复制/导出除大型表之外的所有内容。

理想情况下,大型表确实属于单独的数据库目录,以便客户可以将其“数据”与其“配置”分开备份。但是,我无权进行此类更改,因此我正在寻找一种好方法来导出或复制配置部分,而不必复制整个内容。

目前,我有一个快速而肮脏的 .NET 应用程序,它使用 SQL 适配器和数据集从所有表中盲目选择 *(除了我想省略的表),将其转储到 XML 文件(这是我穷人的导出功能) )。我有一个配套应用程序,我可以在本地使用它来将 XML 加载回 DataSet,然后使用 SQLBulkCopy 将其加载到我的开发数据库中。我必须采取一些技巧来禁用约束等,但我成功了。这为我提供了数据,但没有模式......理想情况下,我想要一种获取模式的方法。这是一种蛮力方法,我相信一定有一种更简单的方法。有更好的方法建议吗?

该解决方案需要自动化,因为我所面对的最终用户通常缺乏 IT 支持。

(SQL 2005 及更高版本)

最佳答案

您可以直接从 SSMS 生成脚本吗?

  1. 右键单击数据库
  2. 选择任务 -> 生成脚本
  3. (如果出现介绍屏幕,请单击“下一步”)
  4. 选择“选择特定数据库对象”
  5. 选择要为其生成脚本的对象(表、存储过程等...)
  6. 单击“下一步”,然后指定输出文件名
  7. 单击“完成”生成脚本

这将仅生成架构。如果您还想执行数据生成脚本,请在步骤 6) 中单击“高级”按钮,然后向下滚动到“脚本的数据类型”,并将其从“仅架构”更改为“仅数据”或“架构和数据”

在您的情况下,您可以对所有小型配置表执行“架构和数据”,然后对您不想导出数据的大型表执行“仅架构”。

我知道这并不是完全自动化,但已经非常接近了。如果您想进一步实现自动化,请查看此线程。不确定这是否适用于 SQL 2005:

How can I automate the "generate scripts" task in SQL Server Management Studio 2008?

关于sql - 如何将架构和一些数据从 SQL Server 复制到另一个实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7245793/

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