というtbl_gallery
データ型の列を持つ というテーブルがあります。bit
isActive
ユーザーがIsActive
値を更新すると、他の行はIsActive = true
自動的に false になります。
更新されたトリガーでどのようにそれを行うことができますか?
助けてください
というtbl_gallery
データ型の列を持つ というテーブルがあります。bit
isActive
ユーザーがIsActive
値を更新すると、他の行はIsActive = true
自動的に false になります。
更新されたトリガーでどのようにそれを行うことができますか?
助けてください
次のようなものが欲しいと思います:
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