无效的对象名称 '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
作为限定的列名。
我一直在尝试在 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
作为限定的列名。