Sql 如何写触发器?
我正在开发一个在线视频web应用程序。我想限制在特定时间访问视频。我写了一个触发器,但是遇到了语法错误的问题。请帮帮我Sql 如何写触发器?,sql,sql-server,tsql,sql-server-2008,triggers,Sql,Sql Server,Tsql,Sql Server 2008,Triggers,我正在开发一个在线视频web应用程序。我想限制在特定时间访问视频。我写了一个触发器,但是遇到了语法错误的问题。请帮帮我 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()
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
SQL Server不能有SELECT触发器(看起来像那种方言)。仅针对记录的数据更改触发激发(更新、删除、插入)
您可以通过视图、存储过程或其他一些代码/客户机检查来实现这一点。SQL Server不能使用SELECT触发器(看起来像那种方言)。仅针对记录的数据更改触发激发(更新、删除、插入)
您可以通过视图、存储过程或其他一些代码/客户端检查来实现这一点。建议将业务逻辑移到存储过程 类似这样的内容以满足您的业务需求:
CREATE PROC GetVideos
AS
DECLARE @Now smalldatetime = GETDATE();
SELECT ID, URL FROM Videos
WHERE DATEPART(dw, @Now) != 3
AND DATEPART(hour, @Now) <= 10;
CREATE PROC-GetVideos
作为
声明@Now smalldatetime=GETDATE();
从视频中选择ID、URL
WHERE DATEPART(dw,@Now)!=3.
和DATEPART(hour,@Now)建议将业务逻辑移到存储过程中
类似这样的内容以满足您的业务需求:
CREATE PROC GetVideos
AS
DECLARE @Now smalldatetime = GETDATE();
SELECT ID, URL FROM Videos
WHERE DATEPART(dw, @Now) != 3
AND DATEPART(hour, @Now) <= 10;
CREATE PROC-GetVideos
作为
声明@Now smalldatetime=GETDATE();
从视频中选择ID、URL
WHERE DATEPART(dw,@Now)!=3.
和DATEPART(hour,@Now)您使用的是什么数据库?你在哪一行得到错误?没有选择触发器。另外,我认为你根本不应该解决数据库的这个特殊问题。那么请告诉我如何解决这个问题你在使用什么数据库?你在哪一行得到错误?没有选择触发器。另外,我认为你根本不应该解决数据库中的这个特殊问题。那么请告诉我如何解决这个问题