无效的对象名称 'INSERTED' - 在 INSERT 之后触发

Invalid object name 'INSERTED' - Trigger after INSERT

我一直在尝试在 Microsoft SQL 服务器环境中创建一个触发器,但无论我做什么我都无法让它工作。

我想将 View (Obowiązkowe_Przedmioty_Studentów) 中的值插入 Table ( Przedmioty_Studentów),通过插入 table 的新值 过滤 (Kierunki_Studentów)。

看起来像这样:

CREATE TRIGGER Przedmioty_Studenta_z_Kierunku
ON dbo.Kierunki_Studentów
AFTER INSERT
AS
BEGIN
INSERT INTO Przedmioty_Studentów
SELECT Id_Studenta, Id_Przedmiotu
FROM   Obowiązkowe_Przedmioty_Studentów ops
JOIN INSERTED i ON ops.Id_Studenta = i.Id_Studenta
WHERE (Id_Studenta = i.Id_Studenta) 
END

在我尝试使用之前:

WHERE (Id_Studenta = INSERTED.Id_Studenta)

但是刚告诉我“不能绑定”。我在这里查看了其他帖子,其中有一个 JOIN 示例。我做了与示例中完全相同的事情,但现在它吐出:“无效的对象名称 'INSERTED'

你能告诉我哪里做错了吗?

干杯

我想这就是你想要的:

BEGIN
    INSERT INTO Przedmioty_Studentów
        SELECT Id_Studenta, Id_Przedmiotu
        FROM Obowiązkowe_Przedmioty_Studentów ops JOIN
             inserted i
             ON ops.Id_Studenta = i.Id_Studenta;
END;

WHERE 子句介于模棱两可和冗余之间——ON 子句进行匹配。为 inserted 声明别名 i 后,您需要使用 i 作为限定的列名。