Начните с вставки записи Person и используйте SCOPE_IDENTITY , чтобы получить уникальный идентификатор, если вставлена запись. Затем вы можете использовать это, чтобы вставить фильмы человека. Прежде чем вы сможете вставить фильм о людях, вам нужно посмотреть, существует ли он или нет, если он существует. Если он выберет его из существующей таблицы и присвоит его уникальный идентификатор переменной. Если он еще не существует, используйте ту же технику для добавления человека и вставки фильма, а затем назначьте SCOPE_IDENTITY для переменной фильма.
В PL / SQL есть оператор UPSERT, который комбинирует обновление записей или вставку их при необходимости. Я добавил код ниже для процедуры, которая выполняет UPSERT в T / SQL и возвращает уникальный идентификатор, если должна была быть создана запись.
IF EXISTS (SELECT id FROM dbo.sysobjects WHERE name = 'fts_upsert_team') DROP PROCEDURE fts_upsert_team
GO
CREATE PROCEDURE fts_upsert_team
@teamID INT OUTPUT,
@name VARCHAR(100)
AS
UPDATE
fts_teams
SET
name = @name
WHERE
teamID = @teamID
IF @@ROWCOUNT = 0
BEGIN
INSERT INTO fts_teams
(
name
)
VALUES
(
@name
)
SET @teamID = SCOPE_IDENTITY()
END
GO