【发布时间】:2018-05-26 22:12:23
【问题描述】:
我需要在插入后和更新后创建触发器。如果新行被插入到表中,它应该在插入触发器之后运行并将时间戳放在其他表中。但是如果再次编辑该行,它也应该更新另一个表。
状态可以更改为活动、待定等。所以当每个状态发生变化时,我需要放置时间戳。对于每条新记录,我都需要添加新行。
这是表结构:
| ID | Name | Status |
|----|------|--------|
| 1 | xyz | Active |
| | | |
| | | |
假设这是在表中插入的新行,所以它应该插入到另一个表中。但是当我改变它的状态时,它应该根据这个 ID 更新另一个表。
| ID | Name | Active Staus | Other Status |
|----|------|--------------|--------------|
| 1 | xyz | TimeStamp | Time Stamp |
| | | | |
| | | | |`
USE [DemoDB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[test_INSERT]
ON [dbo].[Demo]
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
DECLARE ID BIGINT
Declare @status varchar(50)
SELECT @ID = INSERTED.ID
FROM INSERTED
INSERT INTO [dbo].[LogTble]
VALUES(@ID,'timestamp')
END
【问题讨论】:
-
那么到目前为止,你写了什么作为触发器?你被困在哪里了?
-
我只是做了简单的插入。我不知道我怎么能做到这一点。
标签: sql-server triggers