如何在sqlserver中使用触发器限制insert语句

时间:2014-08-08 10:49:19

标签: sql-server

我有一个名为Employee的表,我需要在下午4点到早上8点之前限制插入语句 任何人都可以帮我解决这个问题

create trigger ti_account

on Employee

for insert
as

IF (DATEPART(hh,getdate() )not between 8 and 15) 
begin
    print('You cant insert rows  now')
END 

2 个答案:

答案 0 :(得分:1)

create trigger ti_account

on Employee

INSTEAD OF insert

as

IF (DATEPART(hh,getdate() )not between 8 and 15) 
BEGIN
    INSERT INTO Employee (...) VALUES (inserted.col1, inserted.col2....)
END 

介意我充满激情地讨厌触发器,并且它更好地拦截源头或通过调用存储过程来为你做出这样的逻辑,就像Tanner所说的那样。

答案 1 :(得分:0)

好吧,要停止插入,您还需要回滚。您按原样声明,只会打印出消息,但继续执行该事务。