powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / TRY CATCH
22 сообщений из 22, страница 1 из 1
TRY CATCH
    #39841523
sibir127
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую! Подскажите почему не работает конструкция, я не могу понять по справочнику MS SQL?

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
begin try
select jhdfglkfdsajhg
from [QueryWork].[dbo].[my_tbl]
end try
begin catch
SELECT ERROR_NUMBER() AS 'Номер ошибки',
       ERROR_MESSAGE() AS 'Описание ошибки',
	   ERROR_LINE() AS 'Строка ошибки'
end catch;
GO



ошибка имеет уровень выше 10, но не могу найти ограничение на использование, отсюда не понимаю, почему не работает.
Сообщение 207, уровень 16, состояние 1, строка 3
Недопустимое имя столбца "jhdfglkfdsajhg".
...
Рейтинг: 0 / 0
TRY CATCH
    #39841527
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sibir127,

авторThe following types of errors are not handled by a CATCH block when they occur at the same level of execution as the TRY...CATCH construct:

Compile errors, such as syntax errors, that prevent a batch from running.

Errors that occur during statement-level recompilation, such as object name resolution errors that occur after compilation because of deferred name resolution.

Object name resolution errors
...
Рейтинг: 0 / 0
TRY CATCH
    #39841532
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sibir127,

не могу найти... Искал везде, кроме справки... Где светло, а не где потерял.
...
Рейтинг: 0 / 0
TRY CATCH
    #39841653
sibir127
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А так в хелпе микрософта написано. Как читать? порекомендуйте мануал чтоб с версиями свободного перевода не мучится.

Следующие типы ошибок обрабатываются блоком CATCH, если они возникают на том же самом уровне выполнения, что и конструкция TRY...CATCH.
Ошибки компиляции, такие как ошибки синтаксиса, в результате которых пакет не будет выполнен.
Ошибки, происходящие во время повторной компиляции уровня инструкций, такие как ошибки разрешения имен объектов, которые происходят после компиляции из-за отложенного разрешения имен.
Ошибки разрешения имен объектов
...
Рейтинг: 0 / 0
TRY CATCH
    #39841659
sibir127
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владислав Колосов,
)))
...
Рейтинг: 0 / 0
TRY CATCH
    #39841707
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sibir127Следующие типы ошибок обрабатываются блоком CATCH Не обрабатываются.
are not handled by
sibir127порекомендуйте мануал чтоб с версиями свободного перевода не мучится.Так есть же хелп на русском.
...
Рейтинг: 0 / 0
TRY CATCH
    #39841734
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sibir127,

авторКак читать?
Слева направо. Читать всегда английскую.
...
Рейтинг: 0 / 0
TRY CATCH
    #39841775
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sibir127А так в хелпе микрософта написано. Как читать? порекомендуйте мануал чтоб с версиями свободного перевода не мучится.


"мануал" - это уже версия "свободного перевода" для мазохистов, то есть, чтобы "мучитЬся"
...
Рейтинг: 0 / 0
TRY CATCH
    #39841873
MaksK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sibir127, конструкция try catch - определяет ошибки в ходе выполнения транзакции. В Вашем случае до выполнения дело не доходит, поскольку сервер не может выполнить запрос из-за ошибки синтаксиса (в данном случае отсутствие поля в таблице). Что Вас удивляет ???
...
Рейтинг: 0 / 0
TRY CATCH
    #39841876
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaksKsibir127, конструкция try catch - определяет ошибки в ходе выполнения транзакции. В Вашем случае до выполнения дело не доходит, поскольку сервер не может выполнить запрос из-за ошибки синтаксиса (в данном случае отсутствие поля в таблице). Что Вас удивляет ???
нагородили отсебятины
...
Рейтинг: 0 / 0
TRY CATCH
    #39841882
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKЧитать всегда английскую.А, так это в русской справке неправильно перевели...
Ок, запостил баг.
...
Рейтинг: 0 / 0
TRY CATCH
    #39841911
MaksK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TaPaK, решение в студию...
...
Рейтинг: 0 / 0
TRY CATCH
    #39841913
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaksKTaPaK, решение в студию...
решение уже дал: "нагородили отсебятины"
...
Рейтинг: 0 / 0
TRY CATCH
    #39841961
sibir127
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я разобрался, оформил все в процедуру и поставил контроль на исполнении процедуры, получил уровень выше и все заработало.
Бойтесь машинного перевода статей мелкогопрограммногообеспечения.
...
Рейтинг: 0 / 0
TRY CATCH
    #39843289
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sibir127А так в хелпе микрософта написано. Как читать? порекомендуйте мануал чтоб с версиями свободного перевода не мучится.

Следующие типы ошибок обрабатываются блоком CATCH, если они возникают на том же самом уровне выполнения, что и конструкция TRY...CATCH.
Ошибки компиляции, такие как ошибки синтаксиса, в результате которых пакет не будет выполнен.
Ошибки, происходящие во время повторной компиляции уровня инструкций, такие как ошибки разрешения имен объектов, которые происходят после компиляции из-за отложенного разрешения имен.
Ошибки разрешения имен объектовВсё, я поправил хелп :-)
https://docs.microsoft.com/ru-ru/sql/t-sql/language-elements/try-catch-transact-sql?view=sql-server-2017#errors-unaffected-by-a-trycatch-construct
...
Рейтинг: 0 / 0
TRY CATCH
    #39843349
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sibir127Я разобрался, оформил все в процедуру и поставил контроль на исполнении процедуры, получил уровень выше и все заработало.
Бойтесь машинного перевода статей мелкогопрограммногообеспечения .

О, другое дело, вот теперь видно, что ТС - крупнопрограммный гуру, которого сбили с толку долбаные "мелкопрограммные".
Переходите на Linux+MySQL, там пока нет "мелкогопрограммногообеспечения"
...
Рейтинг: 0 / 0
TRY CATCH
    #39843381
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг ХупинПереходите на Linux+MySQL, там пока нет "мелкогопрограммногообеспечения"Разумеется, ведь по Linux+MySQL всегда есть абсолютно полная документация, которую "сообщество" синхронно и безошибочно переводит на все существующие языки!
...
Рейтинг: 0 / 0
TRY CATCH
    #39844855
Фотография Yuri Abele
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Автору:
Общее решение без создания хранимой процедуры - Dynamic SQL.
Поместите ваш SELECT с абракодаброй в строковую константу (или переменную)и выполните через EXEC(...)
или sp_executesql.
...
Рейтинг: 0 / 0
TRY CATCH
    #39844957
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yuri Abele> Поместите ваш SELECT с абракодаброй в строковую константу (или переменную)и выполните через EXEC(...)
или sp_executesql.
И получите просадку и сервера и запроса
...
Рейтинг: 0 / 0
TRY CATCH
    #39844989
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GatorИ получите просадку и сервера и запроса
И почему же?
...
Рейтинг: 0 / 0
TRY CATCH
    #39845049
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msLex, Поскольку СУБД необходимо создать план доступа во время выполнения для динамических инструкций SQL, динамического SQL обычно медленнее, чем статического SQL. Статистики 0 и прочие ямы
...
Рейтинг: 0 / 0
TRY CATCH
    #39845073
Gatorдинамического SQL обычно медленнее, чем статического SQL. Статистики 0 и прочие ямы
Вообще-то планы по динамике кешируются, если не указано OPTION(RECOMPILE)
Статистика для динамики используется на тех же принципах что и в обычных запросах
И только некоторые нюансы вроде INSERT EXEC будут снижать перформанс потому что вставка будет идти через tempdb а потому уже в целевую таблицу

Про какие прочие ямы и статистику 0 вы говорите?
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / TRY CATCH
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]