ale*_*xtc 5 sql-server sql-server-2008-r2
我创建了一个包含以下列的表:ObservationId,FirstCreatedDate,description,......和SQL Server 2008 R2中的LastUpdatedDate.该ObservationId是1与增量的身份.
我需要创建两个触发器,一个用于INSERT,另一个用于UPDATE.在插入新记录时,INSERT触发器将通过获取当前日期时间来更新FirstCreatedDate列; 在更新现有记录时,UPDATE触发器将通过获取当前日期时间来更新LastUpdatedDate colunm.
我没有这样做,因为我猜测识别可能是问题所在.
有人能帮我一把吗?谢谢!
干杯,亚历克斯
ALTER TRIGGER [dbo].[T_InsertNewObservation] ON [dbo].[GCUR_OBSERVATION]
AFTER INSERT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for trigger here
UPDATE GCUR_OBSERVATION SET GCUR_OBSERVATION.FirstCreatedDate = getdate()
FROM GCUR_OBSERVATION a INNER JOIN INSERTED ins ON a.ObservationId = ins.ObservationId
END
Run Code Online (Sandbox Code Playgroud)
Kan*_*ane 10
我认为你大多是正确的,但没有正确访问INSERTED或DELETED表.
ALTER TRIGGER [dbo].[T_InsertNewObservation] ON [dbo].[GCUR_OBSERVATION]
AFTER INSERT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- get the last id value of the record inserted or updated
DECLARE @id INT
SELECT @id = [ObservationId]
FROM INSERTED
-- Insert statements for trigger here
UPDATE GCUR_OBSERVATION
SET GCUR_OBSERVATION.FirstCreatedDate = GETDATE()
WHERE [ObservationId] = @id
END
Run Code Online (Sandbox Code Playgroud)
PS.希望这可以正常,因为我在记事本中写了它并没有测试它.
| 归档时间: |
|
| 查看次数: |
65023 次 |
| 最近记录: |