【问题标题】:Change Primary keys from int to guid in existing database在现有数据库中将主键从 int 更改为 guid
【发布时间】:2018-02-16 13:33:37
【问题描述】:

我已经接管了一个项目,其中包含现有的 SQL Server 安装。客户希望将所有内容移动到 Azure SQL,并使多个本地数据库同步到 Azure。

表中的 PK 是 int 的,并且要让 Azure 数据同步工作 PK 需要是 guid。该数据库由几个相关的表组成。

因此,我的问题是。将 PK 更改为 guid 并同时在现有表中相应地更新 FK 的最佳方法是什么。

据我所知的过程: 1.新建引导栏 2.填写身份证。 3.将PK改为guid列 4. 将数据更新为 FK 表中的新 guid。

有没有一种简单的可编写脚本的方法来神奇地实现这一点?

【问题讨论】:

  • 你知道需要做什么,并且有一个很好的计划,我会说。去做吧,不幸的是,没有更简单的方法。
  • 你是对的。有 20 多个连接表。所以我宁愿找到一种自动化的方法。类似于循环连接的数据库。但是我在 SQL 查询方面没有足够的经验,到现在为止是有限的
  • 有办法让这一切自动发生。即使有我也不会相信。特别是只有20张桌子。我建议您找到新 guid 以外的列用作聚集索引。
  • 如果您包含另一个 GUID 列并保留旧的列,会有什么问题?使用旧系统作为参考和云的 GUID。
  • GUID 必须是使用数据同步合并表的主键。因此,仅添加一个 guid 列将无法正常工作。

标签: sql-server foreign-keys primary-key


【解决方案1】:

不,SQL Server 中没有任何内容比您已经描述的过程更容易。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-28
    • 1970-01-01
    • 1970-01-01
    • 2011-02-13
    • 2017-04-05
    相关资源
    最近更新 更多