Tengo SQL Server trabajos que se ejecutan, que incluyen periódico ‘imprimir’ las declaraciones que puedo mirar en el historial de trabajo y para tener una idea de lo que pasó. Pero el resultado está lleno de [SQLSTATE 01000]. Dado que hay un límite a cuánto cabe en esta salida, me gustaría tanto espacio como sea posible para obtener información que me importa.

¿Hay alguna manera de suprimir el [SQLSTATE 01000] de salida para ‘imprimir’ comandos?

  • Pero su manera de ser constantemente aseguró que el SqlState es, de hecho, 01000, ¿no crees?
InformationsquelleAutor Clyde | 2009-01-19

3 Comentarios

  1. 3

    El problema (lo siento. «función») es con el comando IMPRIMIR en el Agente de SQL. He superar este problema mediante la creación de una variable de tabla con una columna para «salida» y rellenando a medida que avances a través de mi script, luego en la final del trabajo, SELECCIONE de la tabla de variables. La tubería de la salida a un archivo, a través del Agente de SQL me da un registro del trabajo. En cualquier punto en el trabajo si se encuentra un error, he volcado el contenido de la tabla antes de dejar de fumar. (Me suelen incluir el comando a ser ejecutado en la tabla de la variable inmediatamente antes de ejecutarlo). Simplemente sustituir las instrucciones de IMPRESIÓN con una instrucción SELECT en la final de la tarea de deshacerse de esos molestos [SQLSTATE 01000] sufijos para

    cada…
    maldita sea…
    la línea de…

    Saludos,
    Ken

  2. 0

    Probablemente usted está fuera de suerte. Eso es normal de salida para la IMPRESIÓN de estados de cuenta. No creo que hay alguna forma de acabar con ellos.

  3. 0

    No positivo si desea eliminar sólo el [SQLSTATE 01000] de la salida o nada que contenía [SQLSTATE 01000]. Así que aquí es en ambos sentidos.

    Print replace(@PrintThis, '[SQLSTATE 01000]', '');

    Básicamente esto reemplazará [SQLSTATE 01000] con nada.

    La siguiente useses CHARINDEX(expresión1, expresión1 [, parámetro start_location]), las Búsquedas expresión2 para expresión1 y devuelve su posición inicial si se encuentra. La búsqueda se inicia en el parámetro start_location.

    @result = CHARINDEX('[SQLSTATE 01000]', @PrintThis)
    if (@result > 0)
        Print @PrintThis

    Así que si CHARINDEX < 0 la cadena [SQLSTATE 01000] no existe y no imprimir

    Si no lo que usted está tratando de hacer por favor responder como tal.

    Espero que esto ayude,

    Brett

Dejar respuesta

Please enter your comment!
Please enter your name here