У меня следующая структура таблицы, для удобства я отмечаю только отдельные столбцы
Table_A
(Id, Name, Desc
)Table_1
(Id
это столбец идентификаторов,Name
....)Table_2
(Id
это столбец идентификаторов,Table_A_Id
,Table_1_Id
)
Связь между Table_1 и Table_2 равна 1...*
Теперь я создал тип таблицы для Table_A
с именем TType_Table_A
(который содержит только Id
в качестве столбца, и из моего приложения C # я отправляю несколько записей). Я достиг этой функциональности массовой вставки по желанию.
Что мне нужно, так это то, что когда я вставляю записи в Table_2
из TType_Table_A
, скажем, с приведенными ниже утверждениями, я хотел бы захватить Id
из Table_2
для каждой вставленной записи.
declare @count int = (select count(*) from @TType_Table_A); --a variable declared for TType_Table_A
if(@count > 0)
begin
insert into Table_2(Table_A_Id,Table_1_Id)
SELECT @SomeValue, @SomeValueAsParameter FROM @TType_Table_A;
end;
Теперь скажем, если вставлены 2 записи, я хотел бы зафиксировать Id
для каждой из этих 2 записей.
Любой вклад/помощь приветствуется
Это то, что я знаю, как этого можно достичь, но я хочу уменьшить количество вызовов БД из моего приложения или пользовательского курсора в хранимой процедуре.
Вставьте запись в Table_1 и верните обратно Id Loop..... через записи и вставьте запись в Table_2 и верните обратно Id
OR
Использовать курсор в хранимой процедуре при вставке/выборе из TableType