【发布时间】:2015-08-26 22:56:15
【问题描述】:
我有以下触发器不起作用,我不知道为什么。 触发器应该在插入到 REFERRALS 表后触发,并且我已经允许插入多行的可能性。 REFERRALS 表中的 ORIGINAL_PATIENT_ID 的值应该设置为 Inserted 中的 PATIENT_ID 的值,但它不起作用,即 ORIGINAL_PATIENT_ID 的值仍然为 NULL。
IF EXISTS (SELECT * FROM sys.triggers WHERE object_id = OBJECT_ID(N'[dbo].[updateOSC]'))
DROP TRIGGER [dbo].[updateOSC]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER [dbo].[updateOSC]
ON [dbo].[REFERRALS]
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON
IF (SELECT ORIGINAL_PATIENT_ID FROM Inserted) IS NULL
UPDATE [dbo].[REFERRALS]
SET ORIGINAL_PATIENT_ID = i.PATIENT_ID
FROM Inserted i
WHERE dbo.REFERRALS.PATIENT_ID = i.PATIENT_ID
END
GO
【问题讨论】:
标签: sql tsql sql-server-2005 relational-database