我写了如下的商店程序,
INSERT INTO Slider
(
SliderID
,SliderTitle
,SliderDescription
,SliderImage
,BackgroundImage
,IsBackgroundEnabled
,PageName
,IsEnabled
,CreatedOn
)
VALUES
(
NEWID()
,@SliderTitle
,@SliderDescription
,@SliderImage
,@BackgroundImage
,@IsBackgroundEnabled
,@PageName
,@IsEnabled
,GETDATE()
现在我希望如果slider
表中有多个记录,并且当前添加记录的@IsBackgroundEnabled
属性为真,则为1,则所有其他记录为{{ 1}}属性应该变为false或0。
注意:当前添加的记录@IsBackgroundEnabled
应该是真的。
请帮助我!!
答案 0 :(得分:1)
在插入语句之前添加此更新语句:
IF @IsBackgroundEnabled = 1
UPDATE Slider
SET IsBackgroundEnabled=0
然后添加您的插入语句
答案 1 :(得分:0)
为此,您可能需要在Slider表上创建触发器,如下所示
CREATE TRIGGER SliderAfterInsert
ON [dbo].[Slider]
FOR INSERT
AS
DECLARE @latest AS INT
SET @latest = (
SELECT TOP 1 IsBackgroundEnabled
FROM [Slider]
WHERE IsBackgroundEnabled = 1
ORDER BY
CreatedOn
)
IF (@latest IS NOT NULL AND @latest<>0)
BEGIN
UPDATE Slider
SET IsBackgroundEnabled = 0
WHERE CreatedOn = GETDATE()
PRINT 'SliderAfterInsert trigger fired.'
END
GO
这肯定会对你有所帮助。