KM.
KM.

Reputation: 103579

How to find what caused errors reported in a SQL Server profiler trace?

I was running a trace on a Sql Server 2005 using the profiler and need to find out what is causing the reported errors.

I used the "blank" template, and selected all columns of the following events:

I noticed a number of these errors in the "TextData" column:

I looked up the errors (Incorrect syntax, Invalid object name), but how can I tell what stored procedure or query is causing them?

Upvotes: 7

Views: 19352

Answers (2)

GilaMonster
GilaMonster

Reputation: 1768

Don't worry about the 208 errors. 208 is "Object not found". Profiler picks up these due to what's called 'deferred name resolution'.

Take the following procedure.

CREATE PROCEDURE Demo AS
  CREATE TABLE #Temp (ID int)
  INSERT INTO #Temp VALUES (1)
  SELECT ID FROM #Temp
GO

That proc will run fine without any errors however, if you have a profiler trace running, you'll see one or two instances of error 208. It's because the table #Temp doesn't exist when the proc starts, which is when the code is parsed and bound. The process of binding to the underlying objects fails.

Once the create table runs, the other statements get recompiled and bound to the correct table and run without error.

The only place you'll see that deferred resolution error is in profiler.

Upvotes: 11

Mladen Prajdic
Mladen Prajdic

Reputation: 15677

in sql 2005 you can't. you'll have to run the profiler trace of SQL:StmtStarting, SQL:StmtCompleted, User Error Message and Exception events with text, transactionId, EventSequence and otehr columns you need to get a picture of what's going on.

Upvotes: 2

Related Questions