gpt4 book ai didi

sql-server - SQL Server 更新触发器

转载 作者:行者123 更新时间:2023-12-02 17:13:44 24 4
gpt4 key购买 nike

我以前从未在 SQL Server 中使用过触发器,并且我在网上查找过但没有找到我的问题的答案。基本上我正在尝试编写一个触发器,该触发器将在表中更新记录后运行。然后,该触发器将根据第一个表中更新的记录更新另外两个表。

带有触发器的主表将使用如下查询更新一条记录:

UPDATE E.SM_T_RList
SET IsActive = 0
WHERE Guid = @Guid

然后我希望触发器执行如下操作:

ALTER TRIGGER [E].[IsActiveUpdate] 
ON [E].[SM_T_RList]
AFTER UPDATE
AS
BEGIN

SET NOCOUNT ON;

UPDATE E.SM_T_BInfo
SET IsActive = 0
WHERE Guid = @Guid

UPDATE E.SM_T_RMachines
SET IsActive = 0
WHERE GUID = @GUID

END

我想要更新的 Guid 正在被主表使用。但我不知道如何获取我想要更新到触发器中的@Guid?请帮忙。

谢谢

最佳答案

已经发布的两个答案都遇到相同的问题 - 每当基表上发生任何更新时,它们都会将其他行标记为非事件

类似于:

ALTER TRIGGER [E].[IsActiveUpdate] 
ON [E].[SM_T_RList]
AFTER UPDATE
AS
BEGIN

SET NOCOUNT ON;

UPDATE E.SM_T_BInfo
SET IsActive = 0
WHERE Guid IN (SELECT Guid FROM INSERTED where IsActive=0)

UPDATE E.SM_T_RMachines
SET IsActive = 0
WHERE Guid IN (SELECT Guid FROM INSERTED where IsActive=0)

END

比较合适

关于sql-server - SQL Server 更新触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4593653/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com