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
我一直在思考如何使索引无法访问,或者在如何进行索引方面完全空白。
非常感谢所有帮助。
谢谢。
编辑:
因此,在实施建议后,我不断遇到以下错误:
这是我的触发代码:
/****** 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
答案 0 :(得分:0)
当将记录插入SA_Rental表时,可以使用SQL(inserted
和deleted
)中的逻辑表(又称魔术表)来更新表中的字段。
下面的示例代码:
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