插入或更新 SQL Server(空间)时的触发器

1 sql-server spatial

我正在考虑在实时 SQL Server 空间表上创建一个触发器,当用户执行以下任一操作时,该触发器将更新列:

  1. 创建一个新功能
  2. 更新 GIS 应用程序中要素的几何形状

不幸的是,我只能在创建新功能时更新列,或在更改几何列时更新列,但不能在一个触发器中同时更新这两者。

理想世界 - 属性Updated填充已创建或修改的特定功能的当前日期。

到目前为止,这是我所拥有的仅在创建新功能时才有效的方法:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE TRIGGER *[triggername]* ON *[table]* 
AFTER INSERT,UPDATE
AS BEGIN
    DECLARE @ID VARCHAR(8)

    SELECT @ID = [ID] FROM *[table]*

    UPDATE *[table]*
    SET Updated = GETDATE()
    WHERE [ID] = @ID
END
GO
Run Code Online (Sandbox Code Playgroud)

当几何体改变时这有效

CREATE TRIGGER [triggername] ON [table] 
FOR INSERT, UPDATE 
AS BEGIN
    UPDATE [table] 
    SET [table].Updated = Getdate()
    FROM [table] 
    INNER JOIN deleted d ON [table].id = d.id 
END
GO
Run Code Online (Sandbox Code Playgroud)

dru*_*zin 5

这不是您要找的吗?

CREATE TRIGGER [triggername] ON [table] 
AFTER INSERT, UPDATE 
AS            
BEGIN
    UPDATE [table] 
    SET [table].Updated = Getdate() 
    WHERE ID IN (SELECT ID FROM INSERTED)
END
GO
Run Code Online (Sandbox Code Playgroud)