3

2つのテーブルがpropertyありcomponentます。component.id_property = property.id

選択したプロパティのコンポーネントをカウントするプロシージャを作成しようとしています。選択したプロパティのコンポーネントがない場合は、property.id_state1に変更されます。

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

コメントに記載されているように、値は0ではなくNULLであるため、コードは次のとおりです。

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 に答える