1

我安装了 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

我得到错误:

消息 8197,级别 16,状态 4,过程 after_update,第 1 行
对象“MyTable”不存在或对此操作无效。

TW_ID是一identity列。编辑的是smalldatetime.

没有连接的表。我想要的只是edited在有人更新表格时更新列。

4

1 回答 1

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
于 2014-08-28T21:38:53.330 回答