3

我有两张桌子,propertycomponentcomponent.id_property = property.id.

我正在尝试创建一个过程,它计算所选属性上的组件,如果所选属性没有组件,它会更改property.id_state为 1。

create PROCEDURE property_statement_change AS
BEGIN
declare @value int;

select 
    @value = count(c.value)
from
    component c
where
    c.id_property = 1
group by c.id_property

IF (@value = 0)
  UPDATE property
  SET id_state = 1
  WHERE property.id = 1
END

如果我执行存储的产品,它不会改变任何东西,但选择和更新也可以正常工作。我做错了什么?

4

1 回答 1

2

就像评论中所说的那样,值是 NULL 而不是 0,所以这里是代码:

create PROCEDURE property_statement_change AS
BEGIN
declare @value int;

select 
    @value = count(c.value)
from
    component c
where
    c.id_property = 1
group by c.id_property

IF (@value is NULL)
  UPDATE property
  SET id_state = 1
  WHERE property.id = 1
END
于 2012-05-30T12:00:24.413 回答