我搜索了一遍,然后想出一个空白。我试图更新一个记录,并根据另一个表中的条件将其他记录插入一个表中。两个表都有一个共同的RecordID(nvarchar,因为它们包含字符)。
最简单的解释用英语:
还有其他条件,记录在ColumnA和ColumnB中有值但在ColumnC等中没有。在这种情况下,只需要添加一个新记录,但它们应该在洗涤中出现。
答案 0 :(得分:1)
您可以使用insert with select query将值插入表中。
因此,您的方案的查询将如下所示。
create table @RecordsUpdated(RecordID nvarchar(max))
update t
set ColumnBla = TableA.ColumnA
output
inserted.RecordID
into @RecordsUpdated
from
TableB
inner join TableA on TableB.RecordID = TableA.RecordID
where
TablesA.ColumnA is not null
and TablesB.ColumnA is not null
and TablesC.ColumnA is not null
insert into TableB(RecordID, ColumnBLa)
select TableA.RecordID + 'A', ColumnB
from
TableA
inner join @RecordsUpdated on @RecordsUpdated.RecordID = TableA.RecordID
insert into TableB(RecordID, ColumnBLa)
select TableA.RecordID + 'A', ColumnC
from
TableA
inner join @RecordsUpdated on @RecordsUpdated.RecordID = TableA.RecordID