Sql 使用自动增量值更新另一个表的触发器
我在为数据库创建触发器时遇到问题 我有两张桌子,让我们称之为一张桌子和一个故事 A有一个ID和一个值。 我希望Ashistory在设定的时间内跟踪值和日期 AHistory有一个自动递增的ID、值和时间戳。 就我所知:Sql 使用自动增量值更新另一个表的触发器,sql,sql-server,database,triggers,Sql,Sql Server,Database,Triggers,我在为数据库创建触发器时遇到问题 我有两张桌子,让我们称之为一张桌子和一个故事 A有一个ID和一个值。 我希望Ashistory在设定的时间内跟踪值和日期 AHistory有一个自动递增的ID、值和时间戳。 就我所知: CREATE TRIGGER Atrigger ON A AFTER INSERT AS BEGIN INSERT INTO AHistory SELECT value FROM INSERTED END GO 假设您的db模式如下所示
CREATE TRIGGER Atrigger
ON A
AFTER INSERT
AS
BEGIN
INSERT INTO AHistory
SELECT value FROM INSERTED
END
GO
假设您的db模式如下所示
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;
这里是演示,问题是?你错过了时间戳
getdate()
是假设您使用的是SQL Server的答案。还是另一个RDBMS?谢谢,但问题是A中的ID和AHistory中的ID不一样。在我的示例中,它们不一样。它们恰好具有相同的值,因为它们被定义为标识。因此,请查看SQLFIDLE并解释您的问题到底是什么。