Skip to content

Instantly share code, notes, and snippets.

@brovish
Created August 15, 2020 13:34
Show Gist options
  • Select an option

  • Save brovish/e7bb0e64949e88f30b64b36fcb30940b to your computer and use it in GitHub Desktop.

Select an option

Save brovish/e7bb0e64949e88f30b64b36fcb30940b to your computer and use it in GitHub Desktop.
Using an INSTEAD OF Trigger to Handle a Data Feed
-- Listing 10-28: Using an INSTEAD OF Trigger to Handle a Data Feed
CREATE TABLE FeedTarget
(
ID int NOT NULL PRIMARY KEY,
Descr char (5) NOT NULL
)
GO
CREATE TRIGGER tri_FeedTarget ON FeedTarget INSTEAD OF INSERT
AS
IF @@ROWCOUNT = 0
RETURN
UPDATE F -- rows that already exist
SET
Descr = I.Descr
FROM
inserted AS I
JOIN
FeedTarget AS F ON F.ID = I.ID
INSERT FeedTarget -- new rows
SELECT
ID,
Descr
FROM
inserted AS I
WHERE NOT EXISTS
(
SELECT
*
FROM
FeedTarget AS F
WHERE
F.ID = I.ID
)
GO
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment