如果在触发器中存在

有没有一种方法可以检查一个表中是否存在一个值,我想插入一个触发器来激活它?如果该值确实存在,我不想做任何事情,如果它不,我希望它被插入。如果在触发器中存在

这是我目前的触发

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

回到顶部