我有一个名为COURSE
的表,其中包含以下列:
CourseId int
CourseName varchar
DateofStart Date
我想创建一个触发器,确保课程在8月份无法运行。
答案 0 :(得分:0)
试试这个SQL代码(对于SQL Server)
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER Tr_Course
ON Course
INSTEAD OF UPDATE
AS
BEGIN
SET NOCOUNT ON;
IF TRIGGER_NESTLEVEL() > 1
RETURN
UPDATE Course
SET dateOfStart = I.dateOfStart
FROM Course AS C
JOIN INSERTED I ON C.courseID = I.courseID
WHERE MONTH(I.dateOfStart) <> 8
END
GO
答案 1 :(得分:0)
检查本站点中给出的示例以编写触发器 https://docs.oracle.com/cd/B19306_01/appdev.102/b14251/adfns_triggers.htm#i1025109
步骤1:由于您需要检查在八月份期间无法运行的课程,您需要一个BEFORE INSERT触发器类型。(检查链接中的语法)
步骤2:在Trigger主体中写入逻辑,该主体将检查表格中输入的日期
步骤3:如果DateofStart是八月提出异常或相应的过程
尝试共享代码段。
答案 2 :(得分:-1)
create trigger check_month
on COURSE
for Insert
as
declare @Date nvarchar(10)
declare @month int
select @Date=i.DateofStart from inserted i;
set @month= (select DATEPART(MONTH,@Date))
if(@month=8)
begin
Rollback
end
else
begin
commit
end