Я никогда не пробовал сам, но вы могли бы сделать именно то, что вы просите, создав обновляемое представление и затем вставляя записи в представление.
UPDATE
Я только что попробовал, и не похоже, что это будет работать.
Сообщение 4405, уровень 16, состояние 1, строка 1
Представление или функция Data_t_and_Data_Link_t не могут быть обновлены, так как модификация затрагивает несколько базовых таблиц.
Я полагаю, что это еще одна вещь, которую все пуристы теории реляционных баз данных ненавидят в SQL Server.
ДРУГОЕ ОБНОВЛЕНИЕ
Дальнейшие исследования нашли способ сделать это. Это можно сделать с помощью представления и триггера «вместо».
create table Data_t
(
DataID int not null identity primary key,
[LEFT] tinyint,
)
GO
create table Data_Link_t
(
DataID int not null primary key foreign key references Data_T (DataID),
[RIGHT] smallint,
)
GO
create view Data_t_and_Data_Link_t
as
select
d.DataID,
d.[LEFT],
dl.[RIGHT]
from
Data_t d
inner join Data_Link_t dl on dl.DataID = d.DataID
GO
create trigger trgInsData_t_and_Data_Link_t on Data_t_and_Data_Link_T
instead of insert
as
insert into Data_t ([LEFT]) select [LEFT] from inserted
insert into Data_Link_t (DataID, [RIGHT]) select @@IDENTITY, [RIGHT] from inserted
go
insert into Data_t_and_Data_Link_t ([LEFT],[RIGHT]) values (1, 2)