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

时间:2018-09-09 02:20:12

标签: sql sql-server indexing triggers sql-insert

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

1 个答案:

答案 0 :(得分: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