0

在 SQL SERVER 中将一个表的完整列数据插入到另一个表中的特定列

我有两张桌子AuditCalendar,即ScheduleAudit

  • 审计日历有两列TaskidTaskTypeId
  • Schedule Audit 有两列ScheduleidTaskid

审计日历看起来像这样

Taskid (Auto increment)    TaskTypeId
-------------------------------------
         1                      1
         2                      2
         3                      3
         4                      1  
         5                      1 

但我想要Taskid基于 TaskTypeId .Columns 的审计日历表中的列数据

查询完成后,ScheduleAudit 表应如下所示

Scheuleid (AutoIncrement)     Taskid
-------------------------------------
          1                      1
          2                      1
          3                      1

我必须运行这个查询似乎是一个错误

子查询返回多个值

查询是:

INSERT INTO ScheduleAudit(TaskId)
VALUES ((SELECT TaskId FROM AuditCalendar Where TaskTypeId = 1))

请你能建议我如何做这种方法我是 SQL Server 的新手,但有人说使用游标....我在过去 1 周的文字上真的很困惑。并且也搜索谷歌,但现在没有得到它......请你能给我任何有价值的建议。

4

1 回答 1

2

insert ... values应该插入一行。所以你在括号中的内容应该产生一行,否则它会失败。

没有必要使用insert ... values,什么时候可以使用insert ... select

INSERT INTO ScheduleAudit(TaskId) 
SELECT TaskId FROM AuditCalendar Where TaskTypeId=1

...但是,这会产生

                               1                                            1
                               2                                            4
                               3                                            5

我不确定我是否理解生成示例输出背后的逻辑。

于 2013-10-05T13:27:36.070 回答