将数据从一个数据库传输到具有不同模式的另一个数据库
Transfer data from one database to another database with different schema
我无法将数据从一个 sql 服务器 2008 r2 传输到另一个 sql 服务器 2012 具有不同模式的数据库,这里是一些不同的场景,
- database 1
数据库 1 与 tables 公司和客户,它们都有 FirmId 和 ClientId 主键作为 int 数据类型,
FirmId 是 int 数据类型,作为客户端中使用的参考键 table。
- database 2
数据库 2 具有相同的 tables Firm 和 Client,它们都有 FirmId 和 ClientId 但主键作为唯一标识符,
FirmId 是在客户端 table.
中用作引用键的唯一标识符数据类型
- problem
问题不是将数据从 1 个数据库 table 复制到 2 个数据库 table,而是将引用键的 Firm table 维护到客户端 table.因为有数据类型更改。
我正在使用 sql 服务器 2008 r2 和 sql 服务器 2012
请帮助我解决/找到解决方案,非常感谢您宝贵的时间和精力。谢谢
即使我远不是 SQLServer 专家,我也会尝试一下 - 这是一个通用过程(您必须对所有必须替换 INT 的 tables 重复该过程使用 UID,当然......)。
我将使用 Table A 来指代 parent(公司,如果我清楚地理解您的示例)和 Table B 来指代 child(客户,我相信) .
- 删除指向TableA的关系
- 从 Table A
的 id 列中删除标识
- 在 Table A
上创建一个带有 Uniqueidentifier 的新列
- 为 Uniqueidentifier 列生成值
- 在所有 child table 中添加新的 Uniqueidentifier 列 (Table B)
- 使用 OLD id 列映射您的 child 记录并从您的 parent table.
更新新的 Uniqueidentifier 值
- 删除所有 id 列
- 重建关系
话虽如此,我只是想给你一个警告:根据某些人的说法,转换为 UID 是 a very bad idea。但如果您真的需要这样做,您可以编写(和测试)上述过程的脚本。
我无法将数据从一个 sql 服务器 2008 r2 传输到另一个 sql 服务器 2012 具有不同模式的数据库,这里是一些不同的场景,
- database 1
数据库 1 与 tables 公司和客户,它们都有 FirmId 和 ClientId 主键作为 int 数据类型, FirmId 是 int 数据类型,作为客户端中使用的参考键 table。
- database 2
数据库 2 具有相同的 tables Firm 和 Client,它们都有 FirmId 和 ClientId 但主键作为唯一标识符, FirmId 是在客户端 table.
中用作引用键的唯一标识符数据类型
- problem
问题不是将数据从 1 个数据库 table 复制到 2 个数据库 table,而是将引用键的 Firm table 维护到客户端 table.因为有数据类型更改。
我正在使用 sql 服务器 2008 r2 和 sql 服务器 2012
请帮助我解决/找到解决方案,非常感谢您宝贵的时间和精力。谢谢
即使我远不是 SQLServer 专家,我也会尝试一下 - 这是一个通用过程(您必须对所有必须替换 INT 的 tables 重复该过程使用 UID,当然......)。 我将使用 Table A 来指代 parent(公司,如果我清楚地理解您的示例)和 Table B 来指代 child(客户,我相信) .
- 删除指向TableA的关系
- 从 Table A 的 id 列中删除标识
- 在 Table A 上创建一个带有 Uniqueidentifier 的新列
- 为 Uniqueidentifier 列生成值
- 在所有 child table 中添加新的 Uniqueidentifier 列 (Table B)
- 使用 OLD id 列映射您的 child 记录并从您的 parent table. 更新新的 Uniqueidentifier 值
- 删除所有 id 列
- 重建关系
话虽如此,我只是想给你一个警告:根据某些人的说法,转换为 UID 是 a very bad idea。但如果您真的需要这样做,您可以编写(和测试)上述过程的脚本。