gpt4 book ai didi

sql - 将行数据从一个表安全地插入到另一个表 - SQL

转载 作者:行者123 更新时间:2023-12-04 06:21:12 25 4
gpt4 key购买 nike

我需要使用脚本将存储在一个表中的一些数据移动到另一个表中,同时考虑可能已经在目标表中的现有记录以及可能存在的任何关系。

我很想知道这样做的最佳方法对性能的影响相对较小,并且可以在必要时逆转。

起初我将只移动一条记录以确保过程顺利运行,但随后它将负责移动大约 1650 行。

最好的方法是什么,或者有更好的选择吗?

编辑:

我之前使用 MERGE 的建议将不起作用,因为我将在 SQL Server 2005 环境下运行,而不是像前面提到的那样在 2008 环境下运行。

最佳答案

这个问题没有提供任何细节,所以我不能提供任何实际的真实代码,只是这个攻击计划:

步骤 1 编写一个查询,只选择需要复制的行。您将需要 JOIN和/或过滤( WHERE )此数据以仅包含目标表中尚不存在的行。使列列表在列顺序和数据类型上与目标表的列完全相同。

第 2 步 通过添加 INSERT YourDestinationTable (col1, col2, col3..) 将该 SELECT 语句转换为 INSERT在选择之前。

第 3 步 如果您只想尝试单行,请添加 TOP 1到新INSERET - SELECT command的选择部分,您可以根据需要多次使用/不使用 TOP 重新运行此命令因为它应该消除您通过 JOIN 添加的任何行s 和 WHERE SELECT 中的条件

最后,您将得到如下所示的内容:

INSERT YourDestinationTable
(Col1, Col2, Col3, ...)
SELECT
s.Col1, s.Col2, s.Col3, ...
FROM YourSourceTable s
LEFT OUTER JOIN SomeOtherTable x ON s.Col4=x.Col4
WHERE NOT EXISTS (SELECT 1 FROM YourDestinationTable d WHERE s.PK=d.PK)
AND x.Col5='J'

我正在阅读这个问题,因为它只将源表中缺少的行插入到目标表中。如果还需要迁移更改,那么在执行上述步骤之前,您需要执行 UPDATE加入源表的目标表。如果没有实际表、列等的更多细节,这很难解释。

关于sql - 将行数据从一个表安全地插入到另一个表 - SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6532421/

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