我有2个具有相同列的表,其中之一是userId。我想将所有数据从第一个表复制到第二个表中,并将自定义userId添加到缺少的列中。到目前为止没有成功。
查询如下所示。插入质量,数量,供应商和用户ID(在获取数据的表中不存在)
+-------------+ +-------------------+ +------------------------------+
| Data Ingest +---> Create TF.Dataset +---> Consume Tf.Dataset in Model |
+-------------+ +-------------------+ +------------------------------+
我从dbo.GasStation获取的所有数据都将被插入dbo.NewGasStation,并将此自定义UserId添加到所有结果中。
答案 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