我最近使用的是处理输入XML文件的COM +组件,并根据提供的数据进行了大量的数据库更新。
运行带有EventClass异常的SQL事件探查器,并选择了用户错误消息,我看到了:
异常错误:102,严重性:15,状态:1
用户错误消息“3”附近的语法不正确。
但是我真的想看到COM +组件提供的完整SQL。
我是否仍然使用Profiler或其他方法拦截发送到SQL Server的SQL语句?
本机使用的是SQL Server 2005,COM +对象是用Delphi编写的。
答案 0 :(得分:1)
在Profiler中,尝试观察事件SP:StmtStarting和SQL:StmtStarting,并在输出中包含TextData列。
如果您选择“事件选择”选项卡上的“显示所有事件”复选框,我认为这些事件仅显示在选择列表中。
答案 1 :(得分:1)
所需的事件是SQL:BatchStarting或SQL:BatchCompleted。主要的混淆点是SQL在错误消息之后输出 - 这在您考虑它时确实有意义,但可能不直观。
例如,使用查询SELECT * FROM Table WHERE ID=3 8
(注意3和8之间的空格不正确),我收到了以下输出。
Exception Error: 102, Severity: 15, State: 1
User Error Message Incorrect syntax near '8'.
SQL:BatchStarting SELECT * FROM Table WHERE ID=3 8
SQL:BatchCompleted SELECT * FROM Table WHERE ID=3 8