具有同步 IDENTITY 列的 SQL 多个表

发布于 2024-10-06 02:15:20 字数 300 浏览 10 评论 0原文

我正在“清理”数据库并需要同步 IDENTITY 列。我正在使用存储过程来处理数据并将其从一个表镜像到下一个表(在清理并更正数据类型之后)。在将来的某个时候,我会想要切断旧表并仅使用新表,我的问题是如何让 IDENTITY 字段在它们都在使用时保持同步......一旦旧表被删除,新的将需要继续自动增量并重建/更改它来更改 IDENTITY 字段不是一种选择。这是可能的还是有更好的方法来解决这个问题?

我的另一个想法是创建一个查找表来存储两个表的 ID 列,并且每当新表中有插入时,都会获取旧 ID 和新 ID 并将它们插入到查找表中。一旦旧桌子不碍事,这就有点乱了。

I am working on "cleaning up" a database and need to synchronize the IDENTITY columns. I am using stored procedures to handle the data and mirror it from one table to the next (after cleaning it and correcting the datatypes). At some point in the future I will want to cut off the old table and use only the new table, my question is how to have the IDENTITY field stay in sync while they are both in use... Once the old table is removed the new one will need to continue auto-incrementing and rebuilding/altering it to change the IDENTITY field is not an option. Is this possible or is there a better way to go about this?

My other thought was to create a lookup table to store the ID columns of both tables and anytime there is an insert in the new table take the old ID and new ID and insert them into the lookup table. This is kind of messy once the old table is out of the way tho.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

给不了的爱 2024-10-13 02:15:20

去过那里,做过那件事。将旧的id作为FK放入新表中。在删除旧表之前删除该列。

Been there, done that. Put the old id in the new table as an FK. Drop that column just before you drop the old table.

黑寡妇 2024-10-13 02:15:20
  1. 将新表的标识设置为非标识字段。
  2. 修改数据填充过程以使用旧表的标识值填充新表上的非标识字段。
  3. 切换时,将新字段切换为自动增量并设置种子编号 相应地。
  1. Set the new table's identity to be a non-identity field.
  2. Modify either your data population procedures to populate the non-identity field on your new table with the old table's identity value.
  3. At cutover, switch your new field to auto-increment and set the seed number accordingly.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文