将一个表的完整列数据插入SQL SERVER中另一个表中的特定列
我有两个表格,AuditCalendar
,ScheduleAudit
Taskid
,TaskTypeId
Scheduleid
,Taskid
审核日历如下所示
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的新手,但是有人说使用游标....我真的很困惑最后一周的文字。并且还搜索谷歌但现在没有得到它...请你能给我任何一个有价值的建议。
答案 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
我不确定我理解产生示例输出背后的逻辑。