我有两个表,property
和 component
。 component.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
如果我执行存储过程,它不会改变任何东西,但选择和更新工作正常。我做错了什么?
最佳答案
如评论中所述,值是 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
关于SQL 过程 - 根据其他表的计数更改表列的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10815552/