如何写一个SQL触发器,禁止删除一张表

2025-03-24 22:34:19
推荐回答(3个)
回答1:

Create Trigger truStudent
On Student --在Student表中创建触发器
for Update --要触发的事件
As --事件触发后所要做的事情
if Update(StudentID)
begin
................
end

应该说在删除记录的时候,你的主键肯定也是会被删除的。Delete(pk) 应该也能捕获到,当然这只是一种尝试,

Create trigger Simple

on Employee

instead of delete

as

select * from Employee where 2!=2;

instead of delete 就是当删除 Employee表中数据时,将我们删除Employee表中数据的sql替换为as后的sql语句.我这里写了个不可能成立的条件,也就是说。当删除Employee中数据时会替换执行这条不成立的sql,结果就是表中的数据没有被删除。(Sql Server测试通过)

回答2:

如果是sqlserver,你可以编写一个基于数据库的触发器,

在触发器中,你可以获取待操作的表名,

sqlserver禁止用户删除指定表

如有疑问,及时沟通!

回答3:

可能通过设置用户对表的操作权限来控制