1
我有以下SQL用例(使用MS SQL)更新询问
UPDATE AR_Slots
SET Running = @Running,
StopSignal = @StopSignal,
WHERE (SlotId = @SlotId)
我想如果运行参数(布尔)到一个名为RunListID字段设置为0是真实的,否则我不想根本改变这个值。
这样做的“正确”方法是什么?
感谢, 斯特凡
我有以下SQL用例(使用MS SQL)更新询问
UPDATE AR_Slots
SET Running = @Running,
StopSignal = @StopSignal,
WHERE (SlotId = @SlotId)
我想如果运行参数(布尔)到一个名为RunListID字段设置为0是真实的,否则我不想根本改变这个值。
这样做的“正确”方法是什么?
感谢, 斯特凡
试着这么做
UPDATE AR_Slots
SET RunListID =
CASE
WHEN <your check value>
THEN 0
ELSE RunListID
END,
<your other sets>
WHERE <your criteria>
我同意上述方案是可行的。我会补充说,即使将RunListID设置回原来的值也会被视为对数据库的更改。如果索引或触发器与此字段关联,则if将重建索引或执行触发器。因此,如果性能很关键,为此更新设置单独的SQL可能是一个选项。 – 2010-12-17 11:33:44
谢谢!我不确定我可以使用实际的RunListID,然后重新设置它。 – StefanE 2010-12-17 11:45:23