SQL Server - 更新另一个表

时间:2015-12-09 00:48:05

标签: sql sql-server

我对触发器很新,并试图抓住它们。我有一个运动预订公司的数据库,其中包括表格活动,活动/预订和预订(其中包含预订活动的人员的详细信息)。

我想创建一个触发器,以便在将新事件添加到事件表时,预订表中预订最少的人将在amount_of_bookings列中添加一个,但我不确定如何使用触发器根据对另一个表所做的更改来更改表中的数据。

任何帮助将不胜感激。

由于

到目前为止,我正在研究以下内容:

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

ALTER TRIGGER [dbo].[Test] 
ON  [dbo].[Event]
FOR INSERT
AS 
BEGIN
    SET NOCOUNT ON;

    UPDATE Booking_Coordinators
    SET amount_of_bookings = amount_of_bookings + 1;
END
GO

更新:我创建了一个触发器,它会在预订量列中添加1,但它会为预订表中的每个用户执行此操作。我需要更改查询,以便为预订量最少的用户执行此操作。

1 个答案:

答案 0 :(得分:0)

根据您的评论,您可以将触发器中的更新语句更改为

UPDATE Booking_Coordinators A
SET A.amount_of_bookings = A.amount_of_bookings + 1
WHERE A.amount_of_bookings = (SELECT MIN(X.amount_of_bookings)
                               FROM Booking_Coordinators X);