【发布时间】:2022-01-04 03:01:20
【问题描述】:
我有 4 张桌子。 Table1 ID 是主键,Table2 ID 是外键。 Table3和Table4基本上是Table1和Table2的档案,主键外键和列是一样的。
表1:
ID | Date | Amount
表2:
ID | Type
我必须根据 Date 中定义的值将表 1 数据归档到表 3,我使用这个:
Declare @Date date
set @Date = '2021-11-18'
Begin transaction
INSERT INTO dbo.Table3 (ID, Date, Amount)
SELECT *
FROM dbo.Table1
WHERE Date=@Date
执行此代码导致将其添加到 Table3:
52 | 2021-11-18 | 12
53 | 2021-11-18 | 14
问题是我现在如何将 table2 数据归档到 table4?我只需要 table2 中与我们过滤日期的方式相匹配的数据。基本上就是把table2的所有数据复制到table4中,匹配到table3中的ID。
【问题讨论】:
-
这没有意义。表1中的
ID是表2的PRIMARY KEY是什么意思?一个PRIMARY KEY只能存在于它定义它的表中。你所描述的充其量是模糊的。花时间详细说明你的问题;可能没有使用无意义的名称,如“表 1”和“表 3”。还包括 consumable 样本数据和您对所述样本数据的预期结果。 -
@Larnu 谢谢。我同意这是模糊的。我更新了问题。
-
提问时,您需要提供minimal reproducible example: (1) DDL 和样本数据填充,即 CREATE 表和 INSERT T-SQL 语句。 (2) 你需要做什么,即逻辑和你的代码尝试在 T-SQL 中实现它。 (3) 期望的输出,基于上述#1 中的样本数据。 (4) 您的 SQL Server 版本 (SELECT @@version;)。
标签: sql sql-server archive