我有一个变量来存储查询运行的次数,但是它的长度限制为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
。
DECLARE @value int = 999
SELECT @value - @value / 1000 * 1000
Yieds:999
DECLARE @value int = 1000
SELECT @value - @value / 1000 * 1000
收益率:0
DECLARE @value int = 3525
SELECT @value - @value / 1000 * 1000
收益率:525