1
我已經編寫了一個存儲過程,只允許有100行,具有相同的CustomerPK
,因此如果我們想要插入行101,需要刪除具有相同CustomerPK
的最舊行。刪除行的存儲過程 - SQL Server 2008 R2
我確信有幾種方法可以做到這一點,我不確定哪一個最好。這是程序的代碼。
DECLARE
@TokenCount INT;
SELECT
@TokenCount = COUNT(*)
FROM
CustomerAuthTokens
WHERE
CustomerPK = @CustomerPK;
IF @TokenCount > 99
BEGIN
DELETE FROM CustomerAuthTokens
WHERE AuthToken IN (SELECT TOP(@TokenCount - 99) AuthToken
FROM CustomerAuthTokens
WHERE CustomerPK = @CustomerPK
ORDER BY TokenCreateTime ASC);
END
爲什麼不更新的最古老的行,而不是插入/刪除 – EricZ
@EricZ因爲最早的行可能在某些極端情況下不能行號100 –