首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >TSQL将表数据复制到另一个具有自定义值的表中

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

Stack Overflow用户
提问于 2019-05-28 19:38:31
回答 5查看 55关注 0票数 0

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

查询如下所示。插入Quality、Quantity、Supplier和UserId (在获取数据的表中不存在)

代码语言:javascript
运行
复制
`DECLARE @UserId int = 5611; -- add this to all the data from dbo.GasStation

INSERT INTO dbo.NewGasStation (Quality, Quantity, Supplier, UserId)
SELECT * FROM dbo.GasStation -- UserId doesn't exist in this table
-- Add somehow @UserId to all the data i'm getting from GasStation in order to satisfy the column UserId in the NewGasStation`

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

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2019-05-28 19:42:13

显式列出SELECT中的列,并将变量添加到该列表中,而不是*

代码语言:javascript
运行
复制
DECLARE @userid integer = 5611;

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

Stack Overflow用户

回答已采纳

发布于 2019-05-28 19:42:13

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

代码语言:javascript
运行
复制
INSERT INTO dbo.NewGasStation (Quality, Quantity, Supplier, UserId)
    SELECT Quality, Quantity, Supplier, @UserId
    FROM dbo.GasStation ;
票数 1
EN

Stack Overflow用户

发布于 2019-05-28 19:54:10

如果只想复制所有列,也不需要区分列。只需使用*即可。

如下所示:

代码语言:javascript
运行
复制
DECLARE @UserId integer = 5611;

INSERT INTO [Target]
SELECT *, @UserId FROM [Source]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56341402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档