У меня есть две таблицы, которые должны быть обновлены, Master и Идентификаторы:Выполнить хранимую процедуру для каждой записи в таблице
Мастер
--MasterID (PK)
--ModifiedDate
--ModifiedBy
Идентификаторы
--IdentifierID
--MasterID (FK для Master)
--Identifier
--IdentifierType
--ModifiedDate
--ModifiedBy
единственная причина, главная таблица для существования, чтобы связать различные идентификаторы для одного человека.
Я получаю файл, содержащий новую информацию идентификатора (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'
)
Моя проблема заключается в том, чтобы эта ХП пробег для каждой записи в моем входном файле. Я читал, что использование курсора, хранимой процедуры в хранимой процедуре или временная таблица может быть способом справиться с этим, но я не уверен, что лучший способ реализовать это с использованием одного из этих методов. Вообще-то, я не уверен, правильно ли я буду заниматься этим.
Любая помощь в этом отношении будет принята с благодарностью!
Какая версия SQL Server, пожалуйста? – gbn
SQL Server 2008. – Sesame