【发布时间】:2019-05-15 19:41:53
【问题描述】:
我有一个 select 语句,可以根据条件获取一些记录
UPDATE A
SET A.Status = 3
from dbo.Table A
JOIN (Select fkID, count(1) as total
from dbo.TableLogs A
Group by fkID
having count(1) > 10) B
on B.fkID = A.id
Where A.status = 2
select status,id,filename from table
where status not in (1,3)
我想将这两个查询合并到一个语句中,如果文件总数超过 10,则将状态更新为 3 并继续过滤文件以仅获取状态既不是 1 也不是 @ 的文件987654323@
【问题讨论】:
-
不清楚你想要达到什么。你喜欢创建存储过程吗?
-
为什么它需要在单个命令中发生?我问是因为没有更新和选择命令。
-
Update将更新行,但不返回任何行。Select将返回行,但不会更新任何行。如果要更新并返回行,则需要两个命令。 -
我需要一种存储过程,它可以同时做这两件事,首先它会验证,然后如果计数超过 10,它会更新,最后,它会做一个选择返回我查询数据,如果我想向其中添加新过滤器,则选择应该能够接受参数
-
存储过程将允许您完全做到这一点:具有可预测结果的顺序逻辑步骤。始终可以添加和更新参数和代码。不知道这让我们对这个问题有什么看法。
标签: sql sql-server database sql-server-2016