我需要更新一条记录 IFF 只有一条记录符合我的搜索条件。这是我所拥有的,但它很粗糙:
DECLARE @TestCount INT;
SELECT @TestCount = COUNT(*)
FROM TestRecords tr
WHERE
tr.UnitSerial = @UnitSerial
AND
tr.PassFailStatus = 1;
IF (@TestCount = 1)
UPDATE
TestRecords
SET
Invalid = 1
WHERE
TestRecordID =
(SELECT TestRecordID
FROM TestRecords tr
WHERE
tr.UnitSerial = @UnitSerial
AND
tr.PassFailStatus = 1);
当然这是示例代码 - SELECT 语句中有更多的限制和表连接等,并且它们都由事务包装,但这是存储过程逻辑的要点。
我认为必须有更好的方法,但我不知道那是什么。有什么建议么?
谢谢,戴夫