0

というtbl_galleryデータ型の列を持つ というテーブルがあります。bitisActive

ユーザーがIsActive値を更新すると、他の行はIsActive = true自動的に false になります。

更新されたトリガーでどのようにそれを行うことができますか?

助けてください

4

2 に答える 2

1

次のようなものが欲しいと思います:

CREATE TRIGGER trgGalleryActive
ON dbo.tbl_gallery
FOR UPDATE
AS
    BEGIN
        UPDATE g
        -- Update all other gallery rows for this same user to false
            SET g.IsActive = 0
            FROM tbl_gallery g
                INNER JOIN inserted i
                on g.UserPK = i.UserPK
            WHERE
                -- However, we don't want current inserted records to be updated
                g.TablePK <> i.TablePK
                            -- As per Marc's comment - don't update existing inactive rows unnecessarily
                            AND g.IsActive = 1
                            -- Only if this record is active should any of this happen
                            AND i.IsActive = 1
    END
于 2012-04-17T05:18:38.737 に答える