sp_trace_setstatus (Transact-SQL)

Applies to: SQL Server

Modifies the current state of the specified trace.


This feature will be removed in a future version of SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use this feature. Use Extended Events instead.

Transact-SQL syntax conventions


    [ @traceid = ] traceid
    , [ @status = ] status
[ ; ]


[ @traceid = ] traceid

The ID of the trace to be modified. @traceid is int, with no default. The user employs this @traceid value to identify, modify, and control the trace. For information about retrieving the @traceid, see sys.fn_trace_getinfo (Transact-SQL).

[ @status = ] status

Specifies the action to implement on the trace. @status is int, with no default.

The following table lists the status that may be specified.

Status Description
0 Stops the specified trace.
1 Starts the specified trace.
2 Closes the specified trace and deletes its definition from the server.


A trace must be stopped first before it can be closed. A trace must be stopped and closed first before it can be viewed.

Return code values

The following table describes the code values that users may get following completion of the stored procedure.

Return code Description
0 No error.
1 Unknown error.
8 The specified Status isn't valid.
9 The specified Trace Handle isn't valid.
13 Out of memory. Returned when there isn't enough memory to perform the specified action.

If the trace is already in the state specified, SQL Server returns 0.


Parameters of all SQL Trace stored procedures (sp_trace_*) are strictly typed. If these parameters aren't called with the correct input parameter data types, as specified in the argument description, the stored procedure returns an error.

For an example of using trace stored procedures, see Create a Trace (Transact-SQL).


Requires ALTER TRACE permission.