Здесь можно восстановить старый вопрос, но ... вы можете смоделировать обновление нескольких таблиц в одном запросе с помощью двух запросов UPDATE, заключенных в транзакцию.Таким образом, вам не нужно запутываться, используя обновляемые представления, и никакие изменения не будут сделаны, если обе таблицы не обновятся успешно:
BEGIN TRANSACTION
UPDATE PERIODDATES AS pd
SET pd.PeriodCode = @PeriodCode
WHERE [SCHEMEID] = @SCHEMEID;
UPDATE periods2 AS pd2
SET pd2.[USERCODE] = @USERCODE
WHERE [SCHEMEID] = @SCHEMEID;
COMMIT;
для ваших вставок, вы можете использовать либо @@ IDENTITY, либо OUTPUTINTO, чтобы получить идентификатор новой записи для использования во второй таблице, например:
DECLARE @ID int;
BEGIN TRANSACTION
INSERT INTO PERIODDATES( PeriodCode ) AS pd
VALUES ( @PeriodCode )
WHERE [SCHEMEID] = @SCHEMEID;
SELECT @ID = @@IDENTITY;
INSERT INTO periods2( [SCHEMEID], [USERCODE] ) AS pd2
VALUES ( @ID, @USERCODE );
COMMIT;