Я попробовал ниже, но получил нарушение первичного ключа.
insert into a_c ([a_id], [C_id], [ac_id])
select t2.A,t2.C , dbo.getac_id() from table_2 t2
Я также пытался использовать курсор, он не работал.
DECLARE insert_cursor CURSOR FOR select t2.A,t2.C from table_2 t2
-- open cursor and fetch first row into variables
OPEN insert_cursor FETCH NEXT FROM insert_cursor into @cid,@aid
WHILE @@FETCH_STATUS=0
BEGIN
--insert into table row by row
insert into ing_spe.[dbo].ACTIVITY_CONTACT ( [A_ID],[C_ID], [A_C_ID]) SELECT @aid,@cid, dbo.getac_id()
-- get next available row into variables
FETCH NEXT FROM insert_cursor into @cid,@aid
END
close insert_cursor
Deallocate insert_cursor
GO
Примечание: dbo.getac_id () возвращает одно значение.Логика внутри него выполняет некоторые вычисления и извлекает максимальное значение ac_id из таблицы a_c возвращает уникальное значение.Столбец " ac_id " является первичным ключом.
** желаемый вывод **
[a_id], [C_id], [ac_id]
a1 c1 1011
a1 c2 1012
a2 c1 1013
a3 c4 1014