愚蠢的问题和答案可能不存在(喘气!呻吟!咬牙切齿!牙齿!)
我有一个选择:
SELECT * FROM SockDrawer WHERE Color = 'red'
这会产生 3 行,行 ID 分别为 33896、35901、37903(还有很多其他结果。)
我想要的是这样的:
DECLARE @ROWID INT --- HOW DO I USE ARRAYS? I'll google but an example would help.
DECLARE @COUNT INT
DECLARE @LIMIT INT
SELECT * FROM SockDrawer WHERE Color = 'red'
--(Returns 3 rows. With 3 RowId's 33896, 35901, 33896)
SET @LIMIT = @@ROWCOUNT
SET @COUNT = 1
WHILE @COUNT < @LIMIT BEGIN
SET @ROWID[0] = (SELECT SockKey From SockDrawer WHERE RowID = 33896)
SET @ROWID[1] = (SELECT SockKey From SockDrawer WHERE RowID = 35901)
SET @ROWID[2] = (SELECT SockKey From SockDrawer WHERE RowID = 33896)
SET @Count = @Count + 1
END
GO
Then I need to:
SET @COUNT = 0
WHILE @COUNT < @LIMIT
BEGIN
DELETE FROM SockDrawer WHERE RowID = @ROWID[@COUNT]
END
GO
诀窍是我永远不知道我是在处理要删除的 1 行还是 50 行。
我是一个白痴。我可以改变。如果我想。