Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / TRY CATCH / 22 сообщений из 22, страница 1 из 1
25.07.2019, 16:57
    #39841523
sibir127
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TRY CATCH
Приветствую! Подскажите почему не работает конструкция, я не могу понять по справочнику 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
25.07.2019, 16:59
    #39841527
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TRY CATCH
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
25.07.2019, 17:09
    #39841532
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TRY CATCH
sibir127,

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

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

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


"мануал" - это уже версия "свободного перевода" для мазохистов, то есть, чтобы "мучитЬся"
...
Рейтинг: 0 / 0
26.07.2019, 13:24
    #39841873
MaksK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TRY CATCH
sibir127, конструкция try catch - определяет ошибки в ходе выполнения транзакции. В Вашем случае до выполнения дело не доходит, поскольку сервер не может выполнить запрос из-за ошибки синтаксиса (в данном случае отсутствие поля в таблице). Что Вас удивляет ???
...
Рейтинг: 0 / 0
26.07.2019, 13:28
    #39841876
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TRY CATCH
MaksKsibir127, конструкция try catch - определяет ошибки в ходе выполнения транзакции. В Вашем случае до выполнения дело не доходит, поскольку сервер не может выполнить запрос из-за ошибки синтаксиса (в данном случае отсутствие поля в таблице). Что Вас удивляет ???
нагородили отсебятины
...
Рейтинг: 0 / 0
26.07.2019, 13:35
    #39841882
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TRY CATCH
TaPaKЧитать всегда английскую.А, так это в русской справке неправильно перевели...
Ок, запостил баг.
...
Рейтинг: 0 / 0
26.07.2019, 14:16
    #39841911
MaksK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TRY CATCH
TaPaK, решение в студию...
...
Рейтинг: 0 / 0
26.07.2019, 14:17
    #39841913
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TRY CATCH
MaksKTaPaK, решение в студию...
решение уже дал: "нагородили отсебятины"
...
Рейтинг: 0 / 0
26.07.2019, 15:06
    #39841961
sibir127
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TRY CATCH
Я разобрался, оформил все в процедуру и поставил контроль на исполнении процедуры, получил уровень выше и все заработало.
Бойтесь машинного перевода статей мелкогопрограммногообеспечения.
...
Рейтинг: 0 / 0
31.07.2019, 10:01
    #39843289
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TRY CATCH
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
31.07.2019, 11:35
    #39843349
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TRY CATCH
sibir127Я разобрался, оформил все в процедуру и поставил контроль на исполнении процедуры, получил уровень выше и все заработало.
Бойтесь машинного перевода статей мелкогопрограммногообеспечения .

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

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


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