create trigger on 表 for delete as set nocount on --比如8点到14点不能删除数据 if datepart(hour,getdate()) between 8 and 14 begin --如果有IDENTITY列,注意设置SET IDENTITY_INSERT insert into 表 select * from DELETED print '现在不能删除数据!' end set nocount off go
用触发器实现在一段时间才能对数据删??? create trigger test_tr on t1 instead of delete as if getdate() between '2000-01-01' between '2009-01-01' print '不能删除' else delete t1 from t1 join deleted d on t1.id=d.idgo 如果用after/for时,需要返回事务rollback tran
还是举个说细仔例子给楼主参照:id为唯一时 create table t1(ID int identity(1,1),Name nvarchar(10))insert t1 select 'c'go create trigger test_del on t1 instead of delete asif datepart(hh,getdate()) between 0 and 8 --早上0点至8点不能删 raiserror 50001 N'不能删除' else delete t1 from deleted d join t1 on t1.id=d.id gocreate trigger test_del on t1 for delete asif datepart(hh,getdate()) between 0 and 8 --早上0点至8点不能删 begin rollback tran raiserror 50001 N'不能删除' endgo delete t1 where id=1 go drop table t1以上两种触发器都可以
--使用JOB
--企业管理器
--管理
--SQL Server代理
--右键作业
--新建作业
--"常规"项中输入作业名称
--"步骤"项
--新建
--"步骤名"中输入步骤名
--"类型"中选择"Transact-SQL 脚本(TSQL)"
--"数据库"选择执行命令的数据库
--"命令"中输入要执行的语句:
EXEC 存储过程名... --该存储过程用于创建表 --确定
--"调度"项
--新建调度
--"名称"中输入调度名称
--"调度类型"中选择你的作业执行安排
--如果选择"反复出现"
--点"更改"来设置你的时间安排 --该处设置为每月日的凌晨:00:00
--然后将SQL Agent服务启动,并设置为自动启动,否则你的作业不会被执行 --设置方法:
--我的电脑--控制面板--管理工具--服务--右键SQLSERVERAGENT--属性--启动类型--选择"自动启动"--确定.
on 表
for delete
as
set nocount on
--比如8点到14点不能删除数据
if datepart(hour,getdate()) between 8 and 14
begin
--如果有IDENTITY列,注意设置SET IDENTITY_INSERT
insert into 表 select * from DELETED
print '现在不能删除数据!'
end
set nocount off
go
create trigger test_tr on t1
instead of delete
as
if getdate() between '2000-01-01' between '2009-01-01'
print '不能删除'
else
delete t1 from t1 join deleted d on t1.id=d.idgo
如果用after/for时,需要返回事务rollback tran
还是举个说细仔例子给楼主参照:id为唯一时
create table t1(ID int identity(1,1),Name nvarchar(10))insert t1 select 'c'go
create trigger test_del on t1
instead of delete
asif datepart(hh,getdate()) between 0 and 8 --早上0点至8点不能删
raiserror 50001 N'不能删除'
else
delete t1 from deleted d join t1 on t1.id=d.id
gocreate trigger test_del on t1
for delete
asif datepart(hh,getdate()) between 0 and 8 --早上0点至8点不能删
begin
rollback tran
raiserror 50001 N'不能删除'
endgo
delete t1 where id=1
go
drop table t1以上两种触发器都可以