TSQL将表数据复制到具有自定义值的另一个表

时间:2019-05-28 11:38:31

标签: sql tsql

我有2个具有相同列的表,其中之一是userId。我想将所有数据从第一个表复制到第二个表中,并将自定义userId添加到缺少的列中。到目前为止没有成功。

查询如下所示。插入质量,数量,供应商和用户ID(在获取数据的表中不存在)

+-------------+   +-------------------+   +------------------------------+
| Data Ingest +---> Create TF.Dataset +---> Consume Tf.Dataset in Model  |
+-------------+   +-------------------+   +------------------------------+

我从dbo.GasStation获取的所有数据都将被插入dbo.NewGasStation,并将此自定义UserId添加到所有结果中。

5 个答案:

答案 0 :(得分:2)

如果您只想复制所有列,则也不需要区分这些列。只需使用*

类似这样的东西:

DECLARE @UserId integer = 5611;

INSERT INTO [Target]
SELECT *, @UserId FROM [Source]

答案 1 :(得分:1)

代替*显式列出SELECT中的列,并将变量添加到该列表中。

DECLARE @userid integer = 5611;

INSERT INTO dbo.newgasstation
           (quality,
            quantity,
            supplier,
            userid)
           SELECT quality,
                  quantity,
                  supplier,
                  @userid
                  FROM dbo.gasstation;

答案 2 :(得分:0)

只需将@UserId添加到SELECT列表中即可:

INSERT INTO dbo.NewGasStation (Quality, Quantity, Supplier, UserId)
    SELECT Quality, Quantity, Supplier, @UserId
    FROM dbo.GasStation ;

答案 3 :(得分:0)

INSERT INTO dbo.NewGasStation (Quality, Quantity, Supplier, UserId)
SELECT Quality, Quantity, Supplier, '5611' FROM dbo.GasStation

应该可以解决这个问题(假设两个表的列名都相同)

答案 4 :(得分:0)

确保运行此程序时NewGasStation表不存在

Select Quality, Quantity, Supplier,5611 as UserId
into NewGasStation
from GasStation