SQLSTATE 01000 в выводе задания SQL Server - PullRequest
1 голос
/ 19 января 2009

У меня запущены задания SQL Server, которые включают периодические операторы print, чтобы я мог посмотреть историю заданий и понять, что произошло. Но выходные данные загромождены [SQLSTATE 01000]. Учитывая, что есть предел того, сколько будет помещаться в этом выводе, я хотел бы как можно больше места для информации, которая меня волнует.

Есть ли способ подавить вывод [SQLSTATE 01000] для команд печати?

Ответы [ 3 ]

3 голосов
/ 02 ноября 2010

Проблема (извините, «функция») связана с командой PRINT в агенте SQL. Я преодолел эту проблему, создав переменную таблицы с одним столбцом для «вывода» и заполнив ее по мере прохождения сценария, а затем в самом конце задания SELECT из табличной переменной. Передача вывода в файл через агент SQL дает мне журнал работы. В любой момент задания, если он обнаруживает ошибку, я выкидываю содержимое таблицы перед выходом. (Обычно я включаю команду, которая должна быть выполнена, в переменную таблицы непосредственно перед ее выполнением). Простая замена всех ваших операторов PRINT одним оператором SELECT в конце работы избавит от этих надоедливых суффиксов [SQLSTATE 01000] к

каждый ... черт... линия ...

Ура, Ken

0 голосов
/ 27 января 2009

Не положительно, если вы хотите удалить только [SQLSTATE 01000] из выходных данных или что-нибудь, что содержало [SQLSTATE 01000]. Так что вот оба пути.

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

В основном это заменит [SQLSTATE 01000] ничем.

Следующее использует CHARINDEX (expression1, expression1 [, start_location]), ищет в expression2 выражение1 и возвращает его начальную позицию, если она найдена. Поиск начинается с start_location.

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

Таким образом, если CHARINDEX <0, строка [SQLSTATE 01000] не существует и не печатает </p>

Если вы пропустили то, что вы пытаетесь сделать, пожалуйста, ответьте так.

Надеюсь, это поможет,

Brett

0 голосов
/ 20 января 2009

Вам, наверное, не повезло. Это нормальный вывод для операторов PRINT. Я не думаю, что есть какой-то способ их подавить.

...