【问题标题】:Trigger to update another table WITH auto-increment value使用自动增量值更新另一个表的触发器
【发布时间】:2013-06-12 08:49:43
【问题描述】:

我在为我的数据库创建触发器时遇到问题。

我有两张表,我们称它们为 A 和 AHistory。

A 有一个 ID 和一个值。

我希望 AHistory 跟踪设定时间的值和日期。

AHistory 具有自动递增的 ID、值和时间戳。

据我所知:

CREATE TRIGGER Atrigger 
   ON  A
   AFTER INSERT
AS 
BEGIN    
    INSERT INTO AHistory
    SELECT value FROM INSERTED
END
GO

【问题讨论】:

  • 问题是?你错过了时间戳? getdate() 是假设您使用 SQL Server 的答案。或者它是另一个 RDBMS?

标签: sql sql-server database triggers


【解决方案1】:

假设您的数据库架构看起来像

CREATE TABLE a
   (id int identity primary key, 
     value varchar(32));

CREATE TABLE ahistory
   (id int identity primary key, 
     aid int, value varchar(32), 
     eventdate datetime);

您的触发器可能看起来像

CREATE TRIGGER atrigger ON  A
AFTER INSERT AS 
    INSERT INTO ahistory (aid, value, eventdate)
    SELECT id, value, GETDATE() FROM INSERTED;

这里是SQLFddle演示

【讨论】:

  • 谢谢,但问题是A中的ID和AHistory中的ID不一样。
  • 在我的示例中它们不一样。它们恰好具有相同的值,因为它们被定义为身份。因此,请查看 sqlfiddle 并解释您的问题到底是什么。
猜你喜欢
  • 2018-12-31
  • 2011-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-23
  • 1970-01-01
  • 2011-07-12
  • 2022-01-15
相关资源
最近更新 更多