gpt4 book ai didi

tsql - 用if语句删除sql记录

转载 作者:行者123 更新时间:2023-12-01 13:01:35 25 4
gpt4 key购买 nike

update dbo.tblMessages
set messageFlags = (messageFlags + 1)
where messageId = @messageId

这就是我程序中的更新。我希望能够在更新后删除记录,如果 messageFlags 在更新后变为“10”。

我该怎么做?

最佳答案

添加 < 10条件到更新的位置。如果您想在 10 时删除,那么您是在说“现在是 9 吗?”

-- DECLARE @rc int
update dbo.tblMessages
set
messageFlags = (messageFlags + 1)
where messageId = @messageId and messageId < 10
/*
or assign SET @rc = @@ROWCOUNT to do more stuff first
*/
IF @@ROWCOUNT = 0
DELETE dbo.tblMessages WHERE messageId = @messageId

或者使用UPDATE的赋值特性。类似于OUTPUT子句

DECLARE @newvalue int

BEGIN TRANSACTIOn

update dbo.tblMessages
set
@newvalue = messageFlags = (messageFlags + 1)
where messageId = @messageId

IF @newvalue = 10
DELETE dbo.tblMessages WHERE messageId = @messageId

COMMIT TRAN

归结为一个问题:在删除之前,您是否需要该值实际 10?

关于tsql - 用if语句删除sql记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5605891/

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