我有一系列可更新的视图,我们向最终用户公开作为后端流程的界面。
其中一个视图引用了两个表,并且需要一个INSTEAD OFforUPDATE和INSERTs的触发器。
表的结构是(大大简化):
Claim
(DataRowID bigint IDENTITY PRIMARY KEY
,<bunch of claim data>)
ClaimExtended
(ClaimDataRowID bigint FOREIGN KEY references dbo.Claim(DataRowID) NOT NULL
,<bunch of other claim data>)
Run Code Online (Sandbox Code Playgroud)
我最初的计划是在触发器中这样做:
CREATE TRIGGER [dbo].[MyTrigger] ON [dbo].[MyView]
INSTEAD OF INSERT
AS
DECLARE @IDLink TABLE
(RowID int
,ClaimDataRowID bigint)
DECLARE @Inserted TABLE
(RowID int identity (1,1) NOT NULL
,<all the columns from the view>)
INSERT INTO
@Inserted
(<View columns>)
SELECT
(<View columns>)
FROM
Inserted
INSERT INTO
Claim
(<Columns>) …Run Code Online (Sandbox Code Playgroud) trigger sql-server sql-server-2008-r2 identity output-clause