所以现在我有一个简单的SQL存储过程,我可以调用它来更新数据库中的一个表。在商店程序中,我有一个If条件语句:
IF 1 > 0 THEN
UPDATE TABLE_A
SET COLUMN_1 =299999
WHERE COLUMN_2 ='2014-01-03' and COLUMN_3=0;
我非常确定update子句没有问题,因为当我单独运行它时,它会更新表格。我可以在表中看到更新的值。
但是,当我把它放在IF
语句之后(就像上面的代码一样)时,更新失败了(返回我没有受影响的行)。
我非常确定IF语句也是正确的(现在我把它作为1> 0只用于测试)。
如果我在IF之后放置一个insert语句,它也能正常工作。正在向表中插入一个新行。这太奇怪了。有什么帮助吗?
答案 0 :(得分:3)
如果是T-SQL,请尝试使用BEGIN
语句而不是
IF 1 > 0
BEGIN
UPDATE TABLE_A
SET COLUMN_1 =299999
WHERE COLUMN_2 ='2014-01-03' and COLUMN_3=0
END
答案 1 :(得分:0)
试试这个
UPDATE TABLE_A
SET COLUMN_1 =299999
WHERE COLUMN_2 ='2014-01-03'
AND COLUMN_3=0
AND 1 > 0 ; <------- put it in where clause