我安装了SQL Server 2014 Express来测试它(之前从未使用过)并遇到一些困难,主要是触发器。
首先,我不知道为什么"新的触发器"选项卡Triggers
下的选项卡显示为灰色。
也许是因为我还没有使用过桌子......不知道......
好吧,我尝试用查询来做这件事:
create trigger dbo.after_update
on dbo.MyTable
for UPDATE
as begin
if not update(edited)
update dbo.Mytable
set edited = GETDATE()
where TW_ID IN (SELECT TW_ID FROM inserted)
END
GO
我收到错误:
Msg 8197,Level 16,State 4,Procedure after_update,Line 1 对象' MyTable'对于此操作不存在或无效。
TW_ID
是identity
列。编辑是smalldatetime
。
没有联合表格。我想要的是在有人更新表时更新列edited
。
答案 0 :(得分:0)
CREATE TRIGGER dbo.after_update
ON dbo.MyTable
FOR UPDATE
AS
BEGIN
SET NOCOUNT ON;
UPDATE t
SET t.edited = GETDATE()
FROM dbo.Mytable t
INNER JOIN inserted I ON t.TW_ID = I.TW_ID
END
GO