1

誰でも SQL Server でのこの動作を説明できますか? ストアド プロシージャの一部として UPDATE ステートメントを取得しましたが、以下のように、場合によっては「THEN」エラーの近くで、「条件が期待されるコンテキストで指定された非ブール型の式の式」が発生します。まずは発言。

UPDATE MyDB.dbo.OrganisationUnits
SET OrganisationUnit = Inserted.OrganisationUnit,
ParentOrganisationUnit = 
    (CASE WHEN ((SELECT Count(1) 
                 FROM [172.24.112.10].Consurgo.dbo.OrganisationUnits CO1
                 WHERE CO1.OrganisationUnit = Inserted.ParentOrganisationUnit) = 1)
          THEN Inserted.ParentOrganisationUnit
          ELSE CO.ParentOrganisationUnit
END),
OrganisationLevel = Inserted.OrganisationLevel
FROM Inserted, Deleted, MyDB.dbo.OrganisationUnits CO
WHERE CO.OrganisationUnit = Deleted.OrganisationUnit

CASE文の'=1'の部分でエラーが入ります。

ステートメントが今あるように、それは機能します。=1 の部分を > 0 に変更すると、上記のエラー メッセージで失敗します。

<> 0 でも失敗します。しかし、 <> 1 では機能します。

=2 および <>2 でも機能します。

4

0 に答える 0