Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 как на TSQL получить коды всех ошибок, когда на одну команду генерируется несколько ошибок  [new]
tyratam
Member

Откуда:
Сообщений: 121
Microsoft SQL Server 2008 R2 (SP1) - 10.50.2550.0 (X64) Jun 11 2012 16:41:53 Copyright (c) Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
22 окт 13, 09:26    [15012089]     Ответить | Цитировать Сообщить модератору
 Re: как на TSQL получить коды всех ошибок, когда на одну команду генерируется несколько ошибок  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Посмотрите недавнее обсуждение: drop constraint + try + предыдущие ошибки
22 окт 13, 10:53    [15012655]     Ответить | Цитировать Сообщить модератору
 Re: как на TSQL получить коды всех ошибок, когда на одну команду генерируется несколько ошибок  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Думаю что стоит перечислить все те ошибки которые выдают более одного сообщения.
Из них выявить те, которые критичные и далее подать коллективный баг на расширение текста последней или устранение множественности.
23 окт 13, 16:06    [15021738]     Ответить | Цитировать Сообщить модератору
 Re: как на TSQL получить коды всех ошибок, когда на одну команду генерируется несколько ошибок  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
TRY/CATCH block doesn't work properly for some errors (Closed By Desig) Чел не может нормально багрепорт составить
TRY/ CATCH construct catches last error only (Closed as Won't Fix) Пример дурацкий (RESTORE DATABASE)
Ответ MS:
MS
In SQL Server 2012, you can use the new THROW statement in the CATCH block to rethrow the errors and process them on the client-side.

BEGIN DIALOG Ошибка не охваченные Try-Catch (Closed By Design) Не понимает работу TRY/CATCH

бл?*:!, ни одного нормального багрепорта. Хотя эту проблему мусолят годами.
Хотите адекватный продукт, обеспечьте адекватную обратную реакцию - составляйте внятные багрепорты.
23 окт 13, 16:20    [15021877]     Ответить | Цитировать Сообщить модератору
 Re: как на TSQL получить коды всех ошибок, когда на одну команду генерируется несколько ошибок  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
Mnior
бл?*:!, ни одного нормального багрепорта. Хотя эту проблему мусолят годами.
Хотите адекватный продукт, обеспечьте адекватную обратную реакцию - составляйте внятные багрепорты.


Уж сколько мы разных просьб написали, некоторые чуть ли не в стихах...
и ничо.
Никакой реакции
Хотя нас специально просили - "напишите, что вам еще нужно!"
23 окт 13, 16:33    [15021968]     Ответить | Цитировать Сообщить модератору
 Re: как на TSQL получить коды всех ошибок, когда на одну команду генерируется несколько ошибок  [new]
tyratam
Member

Откуда:
Сообщений: 121
Mnior
Из них выявить те, которые критичные

в BACKUP\RESTORE информативной является предпоследняя ошиюка, а не последняя с кодом 3013 (BACKUP DATABASE is terminating abnormally)
23 окт 13, 16:39    [15022026]     Ответить | Цитировать Сообщить модератору
 Re: как на TSQL получить коды всех ошибок, когда на одну команду генерируется несколько ошибок  [new]
Crimean
Member

Откуда:
Сообщений: 13147
так и я тоже просил, еще в 2009 году
http://connect.microsoft.com/SQLServer/feedback/details/466849/backup-log-error-3013-backup-log-is-terminating-abnormally-hide-the-real-error
обошел сам давно с применением dll / CLR для получения всей коллекции сообщений, но в общем случае это не выход
23 окт 13, 16:47    [15022090]     Ответить | Цитировать Сообщить модератору
 Re: как на TSQL получить коды всех ошибок, когда на одну команду генерируется несколько ошибок  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
tyratam
Mnior
Из них выявить те, которые критичные

в BACKUP\RESTORE информативной является предпоследняя ошиюка, а не последняя с кодом 3013 (BACKUP DATABASE is terminating abnormally)
Я к тому и запилил месагу, что BACKUP\RESTORE смешивать с TRY/CATCH как-то сомнительно.
Баг надо на явных и часто используемых вещах показывать. Нужно не только показать, а обосновать что это необходимо.

Crimean, если вы заметили, я ваш репорт забраковал?

locky
Уж сколько мы разных просьб написали, некоторые чуть ли не в стихах...
Это вы по своим каналам или можете показать тот репорт?
Просто если репорт, то нет ни одного внятного. Был бы,можно было попытаться запилить их массой.
У них тоже люди, я бы ни за что не пошёл эти репорты читать. Сплошной неадекват в 90% случаев.
24 окт 13, 01:05    [15023713]     Ответить | Цитировать Сообщить модератору
 Re: как на TSQL получить коды всех ошибок, когда на одну команду генерируется несколько ошибок  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Mnior
Crimean, если вы заметили, я ваш репорт забраковал?
В смысле - плохой пример у вас.
24 окт 13, 01:06    [15023716]     Ответить | Цитировать Сообщить модератору
 Re: как на TSQL получить коды всех ошибок, когда на одну команду генерируется несколько ошибок  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31978
Mnior
Я к тому и запилил месагу, что BACKUP\RESTORE смешивать с TRY/CATCH как-то сомнительно.
Баг надо на явных и часто используемых вещах показывать. Нужно не только показать, а обосновать что это необходимо.

Crimean, если вы заметили, я ваш репорт забраковал?
А почему сомнительно?

TRY/CATCH нужен для обработки ошибок, подходят любые примеры, когда возвращается более одной ошибки и их нужно обработать.

Другое дело, что в баг-репорте Crimean акцент делается на конкретную команду BACKUP\RESTORE, говорится о каких то опциях "with real_error" и т.д. :-)

Соответственно, бага попала в группу SQL Server Storage Engine, которая тут вообще ни при чём, они поскребли затылочную часть, пожали плечами, сказали "нам бы ваши проблемы", и закрыли баг с гениальным обоснованием "этого у нас в плане нету" :-)

Нужно делать заявку с акцентом на функциональность TRY/CATCH, снабщать тремя разными примерами (в том числе можно и BACKUP\RESTORE, почему нет), можно прямо сказать, что это относится к группе SQL Programmability Team, а не к какой то другой.

Вот например:
Mnior
TRY/ CATCH construct catches last error only (Closed as Won't Fix) Пример дурацкий (RESTORE DATABASE)
В принципе Микрософту понятен баг, сообщение попало к тому, к кому надо (Umachandar, SQL Programmability Team)

Но к сожалению, дальнейшая судьба бага была не в руках Umachandar. Были массовые закрытия багов без обоснования, очевидно была массовая переброска людей на другие проекты типа ажура, так что имеем то, что имеем.

Те баги, которые мы считаем важными, нужно создавать заново или переоткрывать (при создании да, можно делать более разнообразные примеры, но повторю - в данном случае описание адекватно - бага замечена, понята и попала к тому, к кому надо)

Ну и рекламы побольше - вы просто не представляете, насколько важно количество голосов на коннекте.
Зачем МС тратить деньги, если исправление нужно для 20 человек? :-)
24 окт 13, 10:08    [15024363]     Ответить | Цитировать Сообщить модератору
 Re: как на TSQL получить коды всех ошибок, когда на одну команду генерируется несколько ошибок  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
alexeyvg
А почему сомнительно?
Патаму что это частный случай. Вот если бы вы писали не редкий, аля обработка всех ошибок, и половина из них косячат. И видно что TRY/CATCH для чего он и был предназначен массово не работает. Вот тогда и люди голосовать будут чаще и MS не отвернётся.

Не был банально представлен пример ошибки констреинта. Хотя и он плох, ибо это опять не массовые операции, а работа со схемой БД - опять админка.

Да вы сами всё понимаете:
alexeyvg
Зачем МС тратить деньги, если исправление нужно для 20 человек? :-)
Лучше всего была бы ошибка в каком-нидь INSERT/UPDATE/DELETE. Но таковой я не знаю.
alexeyvg
... гениальным обоснованием "этого у нас в плане нету" :-)
Во-во. Они не боги, у них теже капризы что и у нас. Надо подстраиваться.

alexeyvg
Нужно делать заявку с акцентом на функциональность TRY/CATCH, снабщать тремя разными примерами (в том числе можно и BACKUP\RESTORE, почему нет), можно прямо сказать, что это относится к группе SQL Programmability Team, а не к какой то другой.
Те баги, которые мы считаем важными, нужно создавать заново или переоткрывать (при создании да, можно делать более разнообразные примеры
О чём я и толкую.

Надо хотя бы раз написать адекватный баг-репорт подробный и сразу правильный и чистый без недоделок и опускания деталей. И сразу же его поднять в рейтинге.

Так что пока недоработка с нашей стороны.
24 окт 13, 16:22    [15027475]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить