如题,
项目中碰到的问题:sql server2005中,用触发器禁止删除表的内容,因为项目中的功能按钮都是保存在数据库中,系统发布之后就不能让用户删除数据库中某些表里面的内容。
我应该怎么写触发器?或者有什么别的好办法。。
谢谢大家
不让用户删除这样的功能应该放在程序中,只要程序不提供相应的接口用户当然删不了吧,何必使用触发器
如果一定要用,就建一个before delete的触发器,什么都不干就直接上抛一个错误,这样就会中止事务,外部程序接受到一个异常
我想在大部分项目里面,都不会去 delete数据。一般都会采用软删除(就是更新数据的状态为不可见)。
触发器呢,删除的数据 在 deleted表,表结构跟数据表的结构是一样的。你可以搜一下,delete 触发器
不给用户删除的权限就行了,不用触发器,数据库连接所使用的用户的权限列表中禁止用户删除的权限!
路过,学习了....
最直接的办法就是不给用户提供删除的功能.其次,就是Gray Zhang说的,直接抛出一个异常,组织事务的发生.要不就在系统中增加一个权限,有权限的让删,没有的就不让删好了.
哥们,你可以尝试用 Instead of deleted触发器,
再触发器里写上Print '就不让你删除'