0

所以现在我有一个简单的 SQL 存储过程,我可以调用它来更新数据库中的一个表。在存储过程中,我有一个 If 条件语句:

IF 1 > 0 THEN   
         UPDATE TABLE_A 
         SET COLUMN_1 =299999 
         WHERE COLUMN_2 ='2014-01-03'  and COLUMN_3=0;

我很确定更新子句没有问题,因为当我单独运行它时,它会很好地更新表。我可以在表格中看到正在更新的值。

但是,当我将它放在IF语句之后(如上面的代码)时,更新失败(返回我没有受影响的行)。

我很确定 IF 语句也是正确的(现在我把它设置为 1>0 只是为了测试)。

如果我在 IF 之后放置一个插入语句,它也可以正常工作。正在向表中插入新行。这太奇怪了。有什么帮助吗?

4

2 回答 2

3

如果是 T-SQL,请尝试使用BEGIN语句而不是 then

IF 1 > 0
BEGIN
UPDATE TABLE_A 
SET COLUMN_1 =299999 
WHERE COLUMN_2 ='2014-01-03'  and COLUMN_3=0
END
于 2013-01-18T04:17:49.857 回答
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
于 2013-01-18T00:12:16.733 回答