SQL Server触发器 - 使数据字段不可用

问题描述 投票:0回答:1

对SQL Server完全陌生 - 所以请耐心等待。

我正在尝试创建一个触发器,当添加一个引用BikeID的租赁记录时,该触发器应该将数据列(在我的情况下为BikeID)标记为不可用。

这是我到目前为止所得到的,但不太确定如何去做。

create trigger BikeUnavailable
on SA_Rental
after insert, update
as
begin
    declare @BikeID varchar(50)

    if exists(SELECT * FROM SA_Rental
        where bikeid = @BikeID)

    begin


end

我正在考虑使索引无法访问,或者只是完全空白以至于如何去做。

非常感谢所有帮助。

提前致谢。

编辑:

因此,在实施建议后,我不断收到以下错误:

enter image description here

这是我的触发器代码:

/****** Object:  Trigger [dbo].[BikeUnavailable]    Script Date: 
9/9/2018 2:05:33 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER trigger [dbo].[BikeUnavailable]
on [dbo].[SA_Rental]
after insert, update
as
begin
    declare @BikeID varchar(50)

    --update the flag as unavailable in the main table 

    update SA_Bike
    set BikeID = 'Unavailable'
    where BikeId = inserted.BikeID


end
sql sql-server indexing triggers sql-insert
1个回答
0
投票

当记录插入SA_Rental表时,您可以在SQL(inserteddeleted)中使用逻辑表(也就是魔术表)来更新表中的字段。

示例代码如下:

create trigger BikeUnavailable
on SA_Rental
after insert, update
as
begin
    declare @BikeID varchar(50)

    --update the flag as unavailable in the main table 

    update *table_name*
    set *flag_column_name* = *'Unavailable'*
    where BikeId = inserted.BikeID

end

More Insight

© www.soinside.com 2019 - 2024. All rights reserved.