如果在触发器中存在
有没有一种方法可以检查一个表中是否存在一个值,我想插入一个触发器来激活它?如果该值确实存在,我不想做任何事情,如果它不,我希望它被插入。如果在触发器中存在
这是我目前的触发
ALTER TRIGGER [dbo].[Update]
On [dbo].[A]
AFTER UPDATE
AS
Declare @Id int;
SELECT @Id = Issue FROM Inserted
INSERT INTO dbo.[B] (id, problem)
SELECT BugId, ProjectID
FROM dbo.[C]
WHERE BugId = @Id and (projectid = 547)
非常感谢
回答:
inserted
可以包含多行。而left join
可以成为你的朋友用于测试行是否已经存在:
ALTER TRIGGER [dbo].[Update] On [dbo].[A]
AFTER UPDATE
AS
INSERT INTO dbo.[B] (id, problem)
SELECT BugId, ProjectID
FROM
dbo.[C]
inner join
inserted i
on
c.BugID = i.Issue
left join
dbo.B
on
B.ID = c.BugID
WHERE
C.projectid = 547 and B.BugID is null
的回答:
你应该这样做所描述in this SO post。使用IF语句来检查存在。
以上是 如果在触发器中存在 的全部内容, 来源链接: utcz.com/qa/265661.html