程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了TSQL:使用INSERT INTO SELECT FROM进行更新大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决TSQL:使用INSERT INTO SELECT FROM进行更新?

开发过程中遇到TSQL:使用INSERT INTO SELECT FROM进行更新的问题如何解决?下面主要结合日常开发的经验,给出你关于TSQL:使用INSERT INTO SELECT FROM进行更新的解决方法建议,希望对你解决TSQL:使用INSERT INTO SELECT FROM进行更新有所启发或帮助;

迁移的关键是要做几件事:首先,在没有当前备份的情况下不要做任何事情。其次,如果密钥将要更改,则需要至少临时将新旧结构都存储在新结构中(如果用户将密钥字段暴露给用户,则永久存在,因为他们可能正在搜索密钥字段以获取旧记录)。

接下来,您需要对与子表的关系有透彻的了解。如果更改键字段,则所有相关也必须更改。这是同时存储新旧密钥的地方。如果您忘记更改其中任何一个,则数据将不再正确且将无用。因此,这是关键的一步。

挑选出一些特别复杂的数据的测试用例,以确保为每个相关表包括一个或多个测试用例。将现有值存储在工作表中。

要开始迁移,请使用旧表中的选择插入新表中。根据记录的数量,您可能希望遍历批处理(一次不一次记录)以提高性能。如果新密钥是一个标识,则只需将旧密钥的值放在其字段中,然后让数据库创建新密钥。

然后对相关表执行相同操作。然后,使用表中的旧键值将外键字段更新为:

update t2
set fkfIEld = newkey
from table2 t2
join table1 t1 on t1.oldkey = t2.fkfIEld

通过运行测试用例,并将数据与迁移之前存储的数据进行比较,以测试迁移。彻底测试迁移数据绝对至关重要,否则您将无法确定数据是否与旧结构保持一致。迁移是一个非常复杂的动作。花费时间并非常有条理和彻底地做到这一点是值得的。

解决方法

所以我有一个旧数据库,正在迁移到新数据库。新版本的架构略有不同,但大多兼容。另外,我想从零开始重新编号所有表。

目前,我一直在使用编写的工具手动检索旧记录,将其插入新数据库,并更新旧数据库中的v2 ID字段以在新数据库中显示其对应的ID位置。

例如,我从MV5.Posts中选择并将其插入MV6.Posts。插入后,我在MV6.Posts中检索新行的ID,并在旧的MV5.Posts.MV6ID字段中对其进行更新。

有没有一种方法可以通过INSERT INTO SELECT FROM进行此更新,所以我不必手动处理每条记录?我正在使用sqL Server 2005开发版。

大佬总结

以上是大佬教程为你收集整理的TSQL:使用INSERT INTO SELECT FROM进行更新全部内容,希望文章能够帮你解决TSQL:使用INSERT INTO SELECT FROM进行更新所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。