sp_trace_create (Transact-SQL)

Crea una definición de traza. La nueva traza estará en estado de detención.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

sp_trace_create [ @traceid = ] trace_id OUTPUT 
          , [ @options = ] option_value 
          , [ @tracefile = ] 'trace_file' 
     [ , [ @maxfilesize = ] max_file_size ]
     [ , [ @stoptime = ] 'stop_time' ]
     [ , [ @filecount = ] 'max_rollover_files' ]

Argumentos

  • [ @traceid= ] trace_id
    Es el número que Microsoft SQL Server 2005 asigna a la nueva traza. Se pasará por alto cualquier entrada proporcionada por el usuario. trace_id es de tipo int y su valor predeterminado es NULL. El usuario emplea el valor de trace_id para identificar, modificar y controlar la traza definida por este procedimiento almacenado.
  • [ @options= ] option_value
    Especifica las opciones establecidas para la traza. option_value es de tipo int y no tiene ningún valor predeterminado. Los usuarios pueden elegir una combinación de estas opciones especificando el valor de la suma de las opciones seleccionadas. Por ejemplo, para activar ambas opciones, TRACE_FILE_ROLLOVER y SHUTDOWN_ON_ERROR, especifique 6 para option_value.

    En la tabla siguiente se muestran las opciones, las descripciones y sus valores.

    Nombre de la opción Valor de la opción Descripción

    TRACE_FILE_ROLLOVER

    2

    Especifica que al alcanzar el valor establecido en max_file_size, el archivo de traza actual se cerrará y se creará un archivo. Todos los nuevos registros se escribirán en el archivo nuevo. El archivo nuevo tendrá el mismo nombre que el archivo anterior, pero se agregará un entero para indicar su secuencia. Por ejemplo, si el archivo de traza original se llama FILENAME.TRC, siguiente archivo de traza se llamará FILENAME_1.TRC, el siguiente archivo de traza se llamará FILENAME_2.TRC, y así sucesivamente.

    A medida que se creen más archivos de traza de sustitución incremental, el valor entero agregado al nombre del archivo aumentará secuencialmente.

    SQL Server utiliza el valor predeterminado de max_file_size (5 MB) si se especifica esta opción sin especificar un valor para max_file_size.

    SHUTDOWN_ON_ERROR

    4

    Especifica que, si por cualquier razón, no se puede escribir la traza en el archivo, SQL Server se cerrará. Esta opción es muy útil cuando se realizan trazas de auditoría de seguridad.

    TRACE_PRODUCE_BLACKBOX

    8

    Especifica que el servidor guardará un registro de los últimos 5 MB de información de traza producidos por el servidor. TRACE_PRODUCE_BLACKBOX es incompatible con las demás opciones.

  • [ @tracefile= ] 'trace_file'
    Especifica la ubicación y el nombre de archivo en el que se escribirá la traza. trace_file es de tipo nvarchar(245) y no tiene ningún valor predeterminado. trace_file puede ser un directorio local (como N 'C:\MSSQL\Trace\trace.trc') o bien un nombre UNC de un recurso compartido o una ruta de acceso (N'\\nombreDeServidor\nombreDeRecursoCompartido\directorio\trace.trc').

    SQL Server agregará una extensión .trc a todos los nombres de archivos de traza. Si se especifica la opción TRACE_FILE_ROLLOVER y max_file_size, SQL Server crea un archivo de traza cuando el archivo de traza original alcanza su tamaño máximo. El nuevo archivo tiene el mismo nombre que el archivo original, pero se agrega _n para indicar una secuencia, empezando por 1. Por ejemplo, si el primer archivo de traza se llama filename.trc, el segundo archivo de traza se llamará filename_1.trc.

    trace_file no puede especificarse cuando se utiliza la opción TRACE_PRODUCE_BLACKBOX.

  • [ @maxfilesize= ] max_file_size
    Especifica el tamaño máximo en megabytes (MB) que puede alcanzar un archivo de traza. max_file_size es de tipo bigint y su valor predeterminado es 5.

    Si se especifica este parámetro sin la opción TRACE_FILE_ROLLOVER, la traza detiene el registro en el archivo cuando el espacio en disco utilizado excede la cantidad especificada por max_file_size.

  • [ @stoptime= ] 'stop_time'
    Especifica la fecha y la hora de la detención de la traza. stop_time es de tipo datetime y su valor predeterminado es NULL. Si es NULL, la traza se ejecuta hasta que se detiene de forma manual o bien hasta que se cierra el servidor.

    Si se especifican stop_time y max_file_size, y no se especifica TRACE_FILE_ROLLOVER, la traza se detiene cuando se alcanza la hora de detención especificada o el tamaño máximo de archivo. Si se especifican stop_time, max_file_size y TRACE_FILE_ROLLOVER, la traza se detendrá a la hora de detención especificada (a menos que se haya llenado la unidad).

  • [ @filecount= ] 'max_rollover_files'
    Especifica el número máximo de archivos de traza que se pueden mantener con el mismo nombre de archivo base. max_rollover_files es de tipo int, mayor que uno. Este parámetro sólo es válido si se especifica la opción TRACE_FILE_ROLLOVER. Cuando se especifica max_rollover_files, SQL Server intenta mantener el número máximo de archivos de traza indicado por max_rollover_files para ello, elimina el archivo de traza más antiguo antes de abrir uno nuevo. SQL Server hace un seguimiento de la edad de los archivos de traza agregando un número al nombre del archivo base.

    Por ejemplo, al especificar el parámetro trace_file como "c:\mytrace", un archivo con el nombre "c:\mytrace_123.trc" es anterior al archivo con el nombre "c:\mytrace_124.trc". Si el valor de max_rollover_files es 2, SQL Server eliminará el archivo "c:\mytrace_123.trc" antes de crear el archivo de traza "c:\mytrace_125.trc".

    Observe que SQL Server sólo intenta eliminar cada archivo una vez, y no puede eliminar un archivo que esté siendo utilizado en otro proceso. Por lo tanto, si otra aplicación está utilizando archivos de traza mientras se ejecuta la traza, puede que SQL Server deje estos archivos de traza en el sistema de archivos.

Notas

sp_trace_create es un procedimiento almacenado de SQL Server 2005 que realiza la mayor parte de las acciones que anteriormente ejecutaban los procedimientos almacenados extendidos xp_trace_* disponibles en versiones anteriores de SQL Server. Utilice sp_trace_create en lugar de:

  • xp_trace_addnewqueue
  • xp_trace_setqueuecreateinfo
  • xp_trace_setqueuedestination

sp_trace_create sólo crea una definición de traza. Este procedimiento almacenado no se puede utilizar para iniciar o cambiar una traza.

Los parámetros de todos los procedimientos almacenados de Traza de SQL (sp_trace_xx) tienen establecimiento inflexible de tipos. Si no se llama a estos parámetros con los tipos de datos de parámetros de entrada correctos, según se especifica en la descripción del argumento, el procedimiento almacenado devolverá un error.

Para sp_trace_create, la cuenta del servicio SQL Server debe tener permiso de escritura en la carpeta de archivos de traza. Si la cuenta del servicio SQL Server no es administrador en el equipo donde se encuentra el archivo de traza, debe conceder explícitamente permiso de escritura a la cuenta del servicio SQL Server.

[!NOTA] Puede cargar automáticamente el archivo de traza creado con sp_trace_create en la tabla mediante la función del sistema fn_trace_gettable. Para obtener información acerca de cómo utilizar esta función del sistema, vea fn_trace_gettable (Transact-SQL)

Permisos

El usuario debe tener permiso ALTER TRACE.

Valores de código de retorno

En la tabla siguiente se describen los valores del código que los usuarios pueden obtener después de completar el procedimiento almacenado.

Código de retorno Descripción

0

Ningún error.

1

Error desconocido.

10

Opciones no válidas. Se devuelve cuando las opciones especificadas no son compatibles.

12

Archivo no creado.

13

Memoria insuficiente. Se devuelve cuando no hay memoria suficiente para realizar la acción especificada.

14

Hora de detención no válida. Se devuelve cuando ya se ha alcanzado la hora de detención especificada.

15

Parámetros no válidos. Se devuelve cuando el usuario ha proporcionado parámetros no compatibles.

Vea también

Referencia

sp_trace_generateevent (Transact-SQL)
sp_trace_setevent (Transact-SQL)
sp_trace_setfilter (Transact-SQL)
sp_trace_setstatus (Transact-SQL)

Otros recursos

Introducción a Traza de SQL

Ayuda e información

Obtener ayuda sobre SQL Server 2005