【问题标题】:How to generate scripts for production database?如何为生产数据库生成脚本?
【发布时间】:2019-04-30 08:55:36
【问题描述】:

我有一个开发数据库,​​我在其中向多个表添加了新记录。

我想将这些更改移至生产数据库。问题是两者中的 ID 列具有不同的值。

例如。开发中的最后一个 StudentId 为 10,生产中为 25。因此相应的 FK ID 也不同。

我已经生成了脚本,但由于这个问题,我对如何在生产环境中执行感到有些困惑。

另一种方法是我什至从表格中导出数据并粘贴到 Excel。在 Excel 中,我将更新 ID 并将其粘贴到生产表中。

安全执行此操作的最佳做​​法是什么?

【问题讨论】:

  • 当你 INSERT 时打开 IDENTITY_INSERT(如果你希望它们在两个实例上都相同)?
  • @Larnu 是正确的。这是一个例子stackoverflow.com/questions/7063501/…
  • @Larnu 但是子表呢?我将不得不手动更改 FK ID。有什么方法可以自动化吗?
  • 最佳实践是不要在 dev 上创建生产数据。

标签: sql-server sql-server-2008


【解决方案1】:

最好的做法是编写不依赖硬编码的 ID 值的脚本,这样你就可以在 Dev 中运行脚本,它会根据那里的数据生成一些值,然后你可以运行确切的生产环境中的相同脚本,它也将基于那里的现有数据工作。

【讨论】:

  • 你能提供几个相同的样本吗?
  • 例如,不要使用WHERE UserID=1 编写脚本,而是使用WHERE UserName='TomSmith'
猜你喜欢
  • 1970-01-01
  • 2021-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多