如果在触发器中存在
有没有一种方法可以检查一个表中是否存在一个值,我想插入一个触发器来激活它?如果该值确实存在,我不想做任何事情,如果它不,我希望它被插入。如果在触发器中存在
这是我目前的触发
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

