超级难的问题(急)

lawbc 2011-10-09 11:36:49
问题是这样的:
系统A(cs的,没有源码,不可能修改了)对数据库B(mssql)进行操作,操作包括增加、删除、修改,

要在系统A对数据库B操作的时候,把操作的数据同步到其他服务器的数据库上,目前使用的是mssql的触发器,

但发现系统A操作数据并不是使用sql语句的(部分是),而是exec sp_cursor 180150237,40,1之类的游标操作,

这样触发器就不能工作了,有什么办法可以侦听到游标操作呢,即在执行游标的时候,可以获取表名、id的值,

是修改还是删除还是增加???
...全文
180 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
lawbc 2011-10-12
  • 打赏
  • 举报
回复
系统A是用游标进行操作的,比如

exec sp_cursor 180150233,33,1,N'',@东经起=112.733547,@东经止=112.74464719999999,@北纬起=33.835473999999998,@北纬止=33.8501154

这样的语句是不会触发触发器的,这个语句是用profiler获取的
爱你99 2011-10-10
  • 打赏
  • 举报
回复
不知道你说的系统A到底处理什么,查询的时候跟踪不出来表名吗
lawbc 2011-10-10
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 pengjqx 的回复:]
如果实在不行,也不一定非要这样处理啊,做JOB试试看
[/Quote]

请问job怎么弄,问题是要知道系统A处理了什么表的什么操作以及id值
爱你99 2011-10-10
  • 打赏
  • 举报
回复
如果实在不行,也不一定非要这样处理啊,做JOB试试看
lawbc 2011-10-10
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 qianjin036a 的回复:]
既然用了 sp_cursor,那必定先得用类似于 sp_cursoropen 之类的语句来定义,楼主可以考虑跟踪
sp_cursoropen
sp_cursorfetch
sp_cursorclose
等语句,来获得用游标处理的语句.
参见:
http://jtds.sourceforge.net/apiCursors.html#_sp_cursor
[/Quote]

我现在就是用跟踪来做,但是那些语句怎么分析是个麻烦事
CalvinR 2011-10-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 dawugui 的回复:]

这是非要憋着公鸡下个蛋出来看看.
[/Quote]
huangqing_80 2011-10-09
  • 打赏
  • 举报
回复
PROFILER可以监听游标么
dawugui 2011-10-09
  • 打赏
  • 举报
回复
这是非要憋着公鸡下个蛋出来看看.
--小F-- 2011-10-09
  • 打赏
  • 举报
回复
用 SQL PROFILER去试试
saizhang 2011-10-09
  • 打赏
  • 举报
回复
标记,看结果。
-晴天 2011-10-09
  • 打赏
  • 举报
回复
既然用了 sp_cursor,那必定先得用类似于 sp_cursoropen 之类的语句来定义,楼主可以考虑跟踪
sp_cursoropen
sp_cursorfetch
sp_cursorclose
等语句,来获得用游标处理的语句.
参见:
http://jtds.sourceforge.net/apiCursors.html#_sp_cursor
lawbc 2011-10-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 dawugui 的回复:]
这是非要憋着公鸡下个蛋出来看看.
[/Quote]

没有办法啊,一定要实现,哎
lawbc 2011-10-09
  • 打赏
  • 举报
回复
PROFILER api正在看,不知道能不能解决这个问题

22,300

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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