我正在开发一个在线视频网络应用程序。我想限制在特定时间访问视频。我写了一个触发器,但我遇到了语法不正确的问题。请帮帮我。
CREATE TRIGGER trig_Update_Employee ON [CourseTopic]
FOR SELECT AS
BEGIN
DECLARE @week int, @hour int
SET @week = DATEPART(dw, GETDATE())
SET @hour = DATEPART(hour, GETDATE())
IF @week = 3 OR @hour > 10 AND @hour > 10
BEGIN
ROLLBACK tran
PRINT 'class timing is over you can not watch this video at this time.'
END
END
答案 0 :(得分:3)
您不能拥有SQL Server的SELECT触发器(看起来像那个方言)。仅触发记录的数据更改(UPDATE,DELETE,INSERT)
您可以通过视图或存储过程或其他代码/客户端检查来实现此目的。
答案 1 :(得分:0)
建议将业务逻辑转移到存储过程。
这样的东西可以满足您的业务需求:
CREATE PROC GetVideos
AS
DECLARE @Now smalldatetime = GETDATE();
SELECT ID, URL FROM Videos
WHERE DATEPART(dw, @Now) != 3
AND DATEPART(hour, @Now) <= 10;