日期:2014-05-17  浏览次数:20483 次

sqlserver数据库 如何知道执行某个删除操作后 影响的了哪些表?
比如一个软件,涉及到的表很多,我删除了一个用户,我怎么知道我删了这个用户之后,影响了哪些表?
比如:用户表  权限表 等等。

------解决方案--------------------
如果仅仅要知道,方法很多,但是如果想作为一个功能来直接调用,那就有点困难。单纯知道影响多少个表,可以使用profiler来监控做了什么动作,也可以用sp_depends来查看某个表或者存储过程引用了多少个对象。
------解决方案--------------------
引用:
如果仅仅要知道,方法很多,但是如果想作为一个功能来直接调用,那就有点困难。单纯知道影响多少个表,可以使用profiler来监控做了什么动作,也可以用sp_depends来查看某个表或者存储过程引用了多少个对象。

能说详细点吗?如何用sp_depends来查看
另外不要在实际环境中用sqlserver事件跟踪器,不然你会后悔,如果不信,你可以试下!
------解决方案--------------------
这句:另外不要在实际环境中用sqlserver事件跟踪器,不然你会后悔,如果不信,你可以试下! 
因为事件探测器是读操作非常高的一个软件,一开启并且长期启用,你的服务器会卡的块死了。

sp_depends这个你可以看看联机丛书啊
------解决方案--------------------
另外不要在实际环境中用sqlserver事件跟踪器,不然你会后悔

呵呵 这个还是可以有的,但是前提是要做好FILTER,不要选太多的EVENT,还不要开的太久。当然最好是SERVER SIDE TRACE。
------解决方案--------------------
删除有可能调用了触发器存储过程等,或者有级联删除,这写sqlprofile是跟踪不到的, 还是用日志分析工具吧, 比较删除前后的数据变化