MSSQL 将数据从一个表插入到另一个具有固定值的表

ara*_*orn 2 t-sql sql-server

您好,我想在名为 Data 的表中插入来自另一个名为 SourceTable 的表中的多列和一个列,该列为 Data 中添加的每一行都有一个标准值。

假设您在名为 SourceTable 的表中有 Column1 和 Column2,并且 source_id 是预先计算的,并且对于在此查询中添加到 Data 中的每一行,它都是相同的。

INSERT INTO Data (Columns1, Column2, source_id)
SELECT Column1, Column2
FROM SourceTable
UNION SELECT 2;
Run Code Online (Sandbox Code Playgroud)

我试过这个但不起作用,很可能是因为 SELECT 2 只返回一行。

Ric*_*ner 6

你的问题是你给 SQL 3 列插入 2 个值,如果你的联合选择的 source_id 将是 2,那么你会想要这样的东西;

INSERT INTO Data (Columns1, Column2, source_id)
SELECT Column1, Column2, 2
FROM SourceTable
Run Code Online (Sandbox Code Playgroud)

您插入的列数需要与您要插入的列数相匹配。你这样做的方式会产生这样的结果;

Column1   Column2   source_id
Value1    Value2
2
Run Code Online (Sandbox Code Playgroud)

但即使联合也会失败,因为您联合的查询需要具有相同数量的列。