对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
当记录插入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