[英]How to update a specific row where ID, and an auto increment column are involve
我有一個SQL Server表,其中第1列是entryID
,第2列是ID
; 我需要更新特定的行。
例如,我有3行:
我需要更新行1.如何更新特定行?
我使用了下面的代碼,但無法更新第1行,而是更新了第3行
UPDATE Attendance
SET TimeOUT = @TimeOUT,
Time = @Time
WHERE ID = @ID
AND entryID = (SELECT MAX(entryID) FROM Attendance)
我需要更新第1行,但我總是更新最高的entryID
號。
希望您可能正在尋找可以通過ROW_NUMBER
完成的操作
假設您的“行號”基於ROW1中的值順序,則以下查詢將適用於任何提供的行號。
;WITH CTE AS
(
SELECT entryID,
id,
TimeOUT,
Time,
ROW_NUMBER() OVER (ORDER BY entryID) AS RNK
FROM Attendance
)
UPDATE CTE
SET TimeOUT = @TimeOUT, Time = @Time
WHERE RNK = 2 -- your rownumber
右旋糖在這里
您可以嘗試以下查詢嗎?
這用於更新entryID的MAX
值。
UPDATE Attendance set
TimeOUT = @TimeOUT, Time = @Time
WHERE ID = @ID and entryID = (SELECT TOP 1 MAX(entryID) FROM Attendance)
這用於更新entryID的MIN
值。
UPDATE Attendance set
TimeOUT = @TimeOUT, Time = @Time
WHERE ID = @ID and entryID = (SELECT TOP 1 MIN(entryID) FROM Attendance)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.