仅将新数据从一个表插入到具有不同结构的另一个表

时间:2019-05-27 18:51:59

标签: sql-server tsql

仅将新数据从一个表插入另一个结构不同的表

大家好, 我试图在表“ userhr.nucleofam_ris”中仅插入“ userhr.paghe_nucleo_fam”中存在的额外数据。 但是错误出现了:

“子查询返回的值多于1。当子查询遵循= ,! =,<,<=,>,> =或当子查询用作表达式时,不允许这样做。”

问题是我试图为找到的每条记录输入一个更高的+1 kint。

a = 168

List_of_3_lists = [[5628,168,5627],[2342,553,3113],[4532, 332,2442]]

list3 = [4322, 5627, 3313]

你能帮我吗?

1 个答案:

答案 0 :(得分:0)

我从您的描述中认为,您想创建下一组键,以便可以将返回的行插入到现有表的最后一行之后。

这是一个使用两个临时表变量执行此操作的示例。它应该为您指明正确的方向。

declare @t1 table(k int, txt1 varchar(10))
insert @t1 values (1,'firstrow'),(2,'second'),(3,'third')

declare @t2 table(txt2 varchar(10))
insert @t2 values ('a'),('b'),('c')

select row_number() over(order by txt2)
    +(select max(k) from @t1) NewKey, 
    txt2 
from @t2 t2

结果是:

NewKey  txt2
4       a
5       b
6       c