Sql server 插入到带有where条件的表中
我有两张桌子 表1Sql server 插入到带有where条件的表中,sql-server,sql-server-2012,Sql Server,Sql Server 2012,我有两张桌子 表1 OfficeID OfficeName ------------------- 1 UK 2 JP 3 US1 4 US2 5 US3 6 US4 OfficeID是一个标识自
OfficeID OfficeName
-------------------
1 UK
2 JP
3 US1
4 US2
5 US3
6 US4
OfficeID
是一个标识自动递增列
我需要在表1
中添加几个办公室(如US5、US6):
insert into Table1 (OfficeName)
values ('US5'), ('US6')
我还有一张桌子
OrgID OfficeID
----------------
1 1
2 2
3 3
3 4
3 5
3 6
插入US5和US6后,表1中的新数据将
OfficeID OfficeName
-------------------
1 UK
2 JP
3 US1
4 US2
5 US3
6 US4
7 US5
8 US6
在此之后,我想在表2中插入officeID
,以便我的表2如下所示:
OrgID OfficeID
----------------
1 1
2 2
3 3
3 4
3 5
3 6
3 7
3 8
下面是我如何做到这一点的
insert into Table2 (OfficeID)
select OfficeID
from table1
where OfficeID in ((7), (8))
and table2.OrgID = 3
如何做到这一点?谢谢您应该定义要插入的所有列:
insert into Table2 (OfficeID, OrgID)
select OfficeID, 3 from table1 where OfficeID in ((7),(8))
您应该定义要插入的所有列:
insert into Table2 (OfficeID, OrgID)
select OfficeID, 3 from table1 where OfficeID in ((7),(8))
如果要将标识列插入表2中,请尝试使用
OUTPUT
子句
Insert into Table1 (OfficeName)
OUTPUT inserted.OfficeID, 3 INTO Table2 (OfficeID, OrgID)
values
('US5'),
('UK6')
go
如果要将标识列插入表2中,请尝试使用
OUTPUT
子句
Insert into Table1 (OfficeName)
OUTPUT inserted.OfficeID, 3 INTO Table2 (OfficeID, OrgID)
values
('US5'),
('UK6')
go
尝试对表2进行内部联接,因为您正在尝试按表2上的列进行筛选,并且在select语句中不可访问,请尝试以下操作
INSERT INTO Table2 (OfficeID)
SELECT OfficeID FROM table1 INNER JOIN table2 ON (CLAUSE) WHERE table1.OfficeID in ((7),(8))
AND table2.OrgID=3
尝试对表2进行内部联接,因为您正在尝试按表2上的列进行筛选,并且在select语句中不可访问,请尝试以下操作
INSERT INTO Table2 (OfficeID)
SELECT OfficeID FROM table1 INNER JOIN table2 ON (CLAUSE) WHERE table1.OfficeID in ((7),(8))
AND table2.OrgID=3
你收到错误消息了吗?有什么问题吗?您的意思是
Insert into table 2(OrgId,OfficeId)SELECT 3,7 UNION SELECT 3,8
?对于新插入的行,OrgId
是基于什么逻辑的?错误:无法绑定多部分标识符OrgId。是否收到错误消息?有什么问题吗?您的意思是Insert into table 2(OrgId,OfficeId)SELECT 3,7 UNION SELECT 3,8
?什么是OrgId
是根据新插入行的3
逻辑引用的?错误:无法绑定多部分标识符OrgId。您的join没有on子句。这在当前发布时完全无效。您的加入没有ON子句。这是完全无效的,因为目前发布。