2

有什么方法可以从本质上跟踪从 SQL 表中提取一行的次数?

例如,在我的表中,我有一个列数。每次 SQL 语句拉取特定行(我们称之为 rowA)时,rowA 的“计数”值就会增加 1。

无论是在表格的设置中还是在语句中都可以,但我找不到这样的东西。

我知道我可以将它分成两个语句来实现相同的目的,但我宁愿只发送一个。

4

1 回答 1

2

执行此操作的最佳方法是将表的读取访问限制为存储过程。

此存储过程将采用各种输入(过滤器选项)来确定返回哪些行。

在返回行之前,它们的计数器字段会递增。

请注意,update 和 select 命令共享相同的 where 子句。

create procedure Select_From_Table1
  @pMyParameter varchar(20), -- sample filter parameter
as

-- First, update the counter, only on the fields that match our filter
update MyTable set Counter = Counter + 1 
where
  MyFilterField like CONCAT('%', @pMyParameter, '%')  -- sample filter enforcement

-- Now, return those rows
select
  *
from
  MyTable
where
  MyFilterField like CONCAT('%', @pMyParameter, '%')  -- sample filter enforcement

一个不错的选择是在数据访问层的应用程序端处理它。

于 2013-02-11T00:05:32.017 回答