gpt4 book ai didi

sql-server - 将数据从一个数据库传输到具有不同模式的另一个数据库

转载 作者:太空狗 更新时间:2023-10-30 01:55:55 26 4
gpt4 key购买 nike

我在将数据从一个 sqlserver 2008 r2 传输到另一个具有不同模式的 sql server 2012 数据库时遇到问题,这里是一些不同的场景,

  1. database 1

数据库 1 有表 Firm 和 Client,它们都有 FirmId 和 ClientId 主键作为 int 数据类型,FirmId 是 int 数据类型,作为 Client 表中使用的引用键。

  1. database 2

数据库 2 具有相同的表 Firm 和 Client,它们都有 FirmId 和 ClientId 但主键作为唯一标识符,FirmId 是 uniqueidentifier 数据类型,作为 Client 表中使用的引用键。

  1. problem

问题不是将数据从1个数据库表复制到2个数据库表,而是将引用键的Firm表维护到Client表中。因为数据类型发生了变化。

我正在使用 sql server 2008 r2 和 sql server 2012

请帮助我解决/找到解决方案,我非常感谢您宝贵的时间和精力。谢谢

最佳答案

即使我远不是 SQLServer 专家,我也会尝试一下 - 这是一个通用过程(当然,您必须对所有必须用 UID 替换 INT 的表重复此过程。 .).我将使用表 A 来指代 parent (公司,如果我清楚地理解你的例子)和表 B 来指代 child (我相信是客户)。

  1. 删除指向表A的关系
  2. 从表A的id列中去掉identity
  3. 在表 A 上创建一个带有 Uniqueidentifier 的新列
  4. 为 Uniqueidentifier 列生成值
  5. 在所有子表(表 B)中添加新的 Uniqueidentifier 列
  6. 使用 OLD id 列映射您的子记录并更新父表中的新 Uniqueidentifier 值。
  7. 删除所有 id 列
  8. 重建关系

话虽如此,我只想给你一个警告:根据某些人的说法,转换为 UID 是 a very bad idea .但如果您确实需要这样做,您可以编写(和测试)上述过程的脚本。

关于sql-server - 将数据从一个数据库传输到具有不同模式的另一个数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37585023/

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