У меня есть две таблицы, которые нужно обновить, Мастер и Идентификаторы:
Мастер
--MasterID (PK)
--ModifiedDate
--ModifiedBy
Идентификаторы
--IdentifierID
--MasterID (от ФК до Мастера)
--Identifier
--IdentifierType
--ModifiedDate
--ModifiedBy
Единственная причина существования Главной таблицы - привязать разные Идентификаторы к одному человеку.
Я получаю файл, который содержит новую информацию об идентификаторе (MasterID (если имеется), Identifier, IdentifierType), который необходимо вставить в идентификаторы. Записи, которые имеют MasterID, очевидно, просто вставить; однако, записи без них немного сложнее.
Новый MasterID должен быть создан до вставки данных в таблицу идентификаторов, чтобы его можно было использовать в качестве FK.
Я думал, что хранимый процесс что-то вроде этого может работать:
DECLARE @IDOutput INT
INSERT INTO Master
(
ModifiedDate,
ModifiedBy
)
VALUES
(
GETDATE(),
'Robert'
)
SET @IDOutput = SCOPE_IDENTITY()
INSERT INTO Identifiers
(
MasterID,
Identifier,
IdentifierType,
ModifiedDate,
ModifiedBy
)
VALUES
(
@IDOutput,
Identifier, --this comes from input file
IdentifierType, --this comes from input file
GETDATE(),
'Robert'
)
Моя проблема в том, как запустить этот сохраненный процесс для каждой записи в моем входном файле. Я читал, что с помощью курсора, хранимой процедуры в хранимой процедуре или временной таблицы может быть способ справиться с этим, но я не уверен, что лучший способ реализовать это с помощью одного из этих методов. На самом деле, я не уверен, правильно ли я поступлю в этом направлении.
Любая помощь по этому вопросу будет принята с благодарностью!