怎样知道是否使用了触发器

1.当一条语句运行后,怎样知道这条语句是否触发了触发器?
例如,执行一条insert成功,但是表里却没有数据,现在怀疑表里有一个针对insert的触发器,怎样可以得知这个触发器的运行情况?日志可以获得以上信息吗?(除了连接上数据库,直接查看是否有触发器这种方法外)

2.怎样知道某条语句或操作是那个ip请求执行的?

每题50分谢谢!
...全文
198 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
d
  • 打赏
  • 举报
回复
日志里面可以看到命令请求提交者的IP吗?
如果不能什么方法可以得到?
win7cc 2008-08-19
  • 打赏
  • 举报
回复
里面不是有个可以查看的吗 企业管理器里
lff642 2008-08-19
  • 打赏
  • 举报
回复
1.你列出表中的触发器看一下.

2.要记录IP的话.应该从前台才比较容易.
fcuandy 2008-08-19
  • 打赏
  • 举报
回复
楼主希望从日志里看出来,而不是通过语句查找系统表,或是打开管理界面查看触发器。
日志只记录了操作变更,并未记录是什么方式操作的,触发器,存储过程等等, 所以第一个题应该是无解的。
utpcb 2008-08-19
  • 打赏
  • 举报
回复
select t2.*from sys.objects t1 ,sys.triggers t2

where t1.name=表名
and t1.object_id=t2.parent_id

看看你那个表有多少触发器!
你也可以使用
禁用
alter table BOMMD disable trigger all
开启
alter table BOMMD enable trigger all
you_tube 2008-08-19
  • 打赏
  • 举报
回复

2.SQL Server Profiler里有TxtData将它设置为近似于你的网点号就行了
tianhuo_soft 2008-08-19
  • 打赏
  • 举报
回复

列出所有触发器

select so2.name as [Table] , so1.name [Trigger],
so1.refdate,
case sc.encrypted
when 0 then sc.text
else 'unreadable'
end
as Defination
from syscomments sc inner join sysobjects so1 on sc.id= so1.id
inner join sysobjects so2 on so1.parent_obj = so2.id
where so1.xtype='TR' and so2.xtype='U'
Herb2 2008-08-19
  • 打赏
  • 举报
回复
1.仅仅是执行SQL语句是不可能获知表是否包含触发器的。
2.可以通过事件查看器跟踪查看。
  • 打赏
  • 举报
回复
1、直接查看表中是否有相应的触发器不行吗?

2、怎样知道某条语句或操作是那个ip请求执行的?

看看日志里面,有记录
  • 打赏
  • 举报
回复
服务器sql2000
客户端管理界面sql2005
  • 打赏
  • 举报
回复
事件探查器不能用
日志工具怎么查看?
水族杰纶 2008-08-19
  • 打赏
  • 举报
回复
2:SQL Server Profiler
zoujp_xyz 2008-08-19
  • 打赏
  • 举报
回复
日志工具,事件探查器都可以看到

2.Ip?ip地址?
fa_ge 2008-08-19
  • 打赏
  • 举报
回复
1:
在查询分析中,把这个表的触发器加上 print '已执行' ,然后再插入数据,看会不会出现'已执行'.

2:
打开事件探查器应可以看到
fcuandy 2008-08-19
  • 打赏
  • 举报
回复
sql2000 or sql2005?

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧