create trigger tri_test
on tb
instead of update,delete
as
if exists(select * from deleted d where 日期 between '2008-01-01' and '2008-04-04')
begin
rollback tran
return
end
--xx其它事情
go
on tb
instead of update,delete
as
if exists(select * from deleted d where 日期 between '2008-01-01' and '2008-04-04')
begin
rollback tran
return
end
--xx其它事情
go
对于数据文件组和数据的只读
Read-Only filegroups and Locking
http://blogs.msdn.com/sqlserverstorageengine/archive/2007/01/08/read-only-filegroups-and-locking.aspx
对于整个数据库的只读,
http://www.informit.com/guides/content.aspx?g=sqlserver&seqNum=268
create trigger tri_test
on tb
instead of update,delete
as
if exists(select * from deleted d where 日期 between '2008-01-01' and '2008-04-04')
begin
rollback tran
return
IF @@rowcount=0
select '嘿嘿,小样,就知道你改不了吧。' as 警告
ELSE
SELECT '靠,这样你也能改成。你太BT了吧。' 警告
end
/*
我给个建议,如果触发事件,最好把 内容插入到 另外一张表内。记录IP 和其他的。这叫安全嘛
*/
create trigger tri_test
on tb
instead of update,delete
as
if exists(select * from deleted d where 日期 between '2008-01-01' and '2008-04-04')select * into tablename from deleted IF @@rowcount=0
select '嘿嘿,小样,就知道你改不了吧。 ' as 警告
ELSE
SELECT '靠,这样你也能改成。你太BT了吧。 ' as 警告 begin
rollback tran
return
end