我發現了一個新問題:我有兩個表,類和學生。 學生參考班作者[ClassID]專欄。 類已列名爲[計數],其存儲參考學生的數量,我通過努力更新其插入後,刪除學生表觸發。 我寫了一個簡單CALC_COUNT過程那樣:通過觸發計數參考記錄
CREATE PROCEDURE [dbo].[CALC_COUNT]
@classid INT
AS
BEGIN
UPDATE classes SET [Count] = (SELECT COUNT(Id) FROM students WHERE [ClassID] = @classid);
END
RETURN 0
,並用它裏面觸發
CREATE TRIGGER [MONITOR_STUDENTS_SCHEMA_TRIGGER]
ON [dbo].[students]
AFTER DELETE, INSERT
AS
BEGIN
UPDATE [dbo].[classes]
SET studentsschemarev +=1 FROM inserted;
CALC_COUNT(SELECT [ClassID] FROM inserted UNION SELECT [ClassID] FROM deleted);
UPDATE [dbo].[stats] SET students_schema_rev += 1;
END
乙它不起作用。 我想,我需要一種方法來在觸發器的SELECT語句中爲每一行執行過程,但我不知道如何。
SQL Server 2012中的LocalDB,與SQL Server兼容模式2008
謝謝,現在就試試。 – 2012-08-02 21:06:51
> on classes.studentid = students.classid //否,學生有[ClassID],但班級沒有[StudentID]。交叉許多不好。 – 2012-08-02 21:16:28
我的不好 - 應該是classes.classid – podiluska 2012-08-02 21:18:45