SQLSTATE 01000 в выходных данных задания SQL Server

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

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

Но так полезно постоянно быть уверенным, что SqlState действительно 01000, вам не кажется?

codeulike 07.04.2011 14:44
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
1
13 778
3

Ответы 3

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

Не положительно, если вы хотите удалить только [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] не существует и не печатается

Если вы пропустили то, что пытаетесь сделать, ответьте соответствующим образом.

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

Бретт

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

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

Ваше здоровье, Кен

Другие вопросы по теме