This is my first question here. I'm an absolute beginner to DML.
The aim is to implement a hierarchy for a later dropdown box in the web ui. The original code is for oracle and i try translate it to SQL Server. In Oracle they solved it with "before insert" and "for each row".
Here is my code so far:
CREATE TRIGGER dbo.test
ON dbo.TOPOLOGY
AFTER INSERT
AS
BEGIN
IF @@ROWCOUNT = 0
RETURN
SET NOCOUNT ON
IF INSERTED.HIERARCHY_LEVEL = 0
BEGIN
SET INSERTED.L0 = INSERTED.TOPOLOGY_ID
SET INSERTED.PARENT = NULL
END
ELSE
IF INSERTED.HIERARCHY_LEVEL = 1
BEGIN
SET INSERTED.L1 = INSERTED.TOPOLOGY_ID
SET INSERTED.PARENT = INSERTED.L0
END
ELSE
IF INSERTED.HIERARCHY_LEVEL = 2
BEGIN
SET INSERTED.L2 = INSERTED.TOPOLOGY_ID
SET INSERTED.PARENT = INSERTED.L1
END
ELSE
IF INSERTED.HIERARCHY_LEVEL = 3
BEGIN
SET INSERTED.L3 = INSERTED.TOPOLOGY_ID
SET INSERTED.PARENT = INSERTED.L2
END
ELSE
IF INSERTED.HIERARCHY_LEVEL = 4
BEGIN
SET INSERTED.L4 = INSERTED.TOPOLOGY_ID
SET INSERTED.PARENT = INSERTED.L3
END
END
The database drops the error message: syntax error near '.' for all rows containing INSERTED.Lx.
I try to figure out why it doesn't work for hours now...
Where is/are my mistake/s?
Best regards
Tom
insertedis a table that will contain 0, 1 or multiple rows. You need to write a query that can work with all of the rows in that table.