当Count达到一定数量时,将存储Query运行次数的Variable重置为1?

Reset a Variable that stores the number of times a Query runs back to 1 when the Count reaches a certain number?

我有一个存储查询运行次数的变量,但它有 3 个字符的长度限制,我无法修改。因此,一旦计数达到 999,我认为逻辑将失败。

SET @QueryCount = (
    SELECT COUNT(1) FROM dbo.Records WHERE QueryName = @QueryName
);

目前我没有逻辑来解释超过 3 个字符的计数,期望变量在达到 999 后将被重置为计数 1。

您可以尝试做整数除法:

SET @QueryCount = (
    SELECT COUNT(1) - COUNT(1) / 1000 * 1000
    FROM dbo.Records 
    WHERE QueryName = @QueryName
);

这保证该值将属于范围 0..999。当该值达到 1000 时,它会重置为 0

Demo of the arithmetic logic:

DECLARE @value int = 999
SELECT @value - @value / 1000 * 1000

产量:999

DECLARE @value int = 1000
SELECT @value - @value / 1000 * 1000

产量:0

DECLARE @value int = 3525
SELECT @value - @value / 1000 * 1000

产量:525

或者只是:

SELECT @value % 1000;