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

时间:2013-10-05 13:18:40

标签: sql-server

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

我有两个表格,AuditCalendarScheduleAudit

  • 审核日历有两列TaskidTaskTypeId
  • 计划审核有两列ScheduleidTaskid

审核日历如下所示

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

但我希望基于TaskTypeId .Columns的审核日历表中的Taskid列数据

完成查询后,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 个答案:

答案 0 :(得分:2)

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

当您可以使用insert ... values时,无需使用insert ... select

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

......然而,这会产生

                               1                                            1
                               2                                            4
                               3                                            5

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