我需要爲每個NEW DocNumber增加一列(Counts)+1。所以如果DocNumber對於三列是相同的,則計數器將是1,2,3等。下面是代碼。我知道它會更新整個表格,而不是基於相同或不同的文檔編號。有人可以幫我理解這裏的邏輯嗎?使用計數器來增加列號
基本上,我要重新啓動計數器,當它擊中一個新TempDocNumber
DECLARE @DocTable Table (DetailID FLOAT, TempDocNumber FLOAT, Counts INT)
INSERT INTO @DocTable (DetailID, TempDocNumber, Counts)
SELECT DetailID, DocumentNumber, 0 FROM ChargebackDetailTempTable
declare @Counter int
Set @Counter = 0
Update @Doctable
SET @Counter = counts = @Counter + 1
-- start counter over when new tempdocnumber
在這種情況下,你不應該需要一個更新。但一般來說,請不要使用這種「古怪的更新」模式。它不受支持,沒有記錄,可能會破壞新版本或Service Pack,並且在表單中不能保證處理順序(尤其是因爲您的@table沒有密鑰或聚簇索引)。 –