Умный способ получить уникальное имя индекса из сообщения SqlException?

Есть ли какой-нибудь умный / лучший способ получить уникальное имя индекса из сообщения SqlException? вроде следующего:

Невозможно вставить повторяющуюся ключевую строку в объект «partners.Partner» с уникальным индексом «IX_Partner_SerialId». Заявление было прекращено.

Мне нужно получить IX_Partner_SerialId без необходимости манипулировать строкой сообщения об исключении? что-то вроде переменной в объекте исключения?


person Ahmed Magdy    schedule 08.08.2011    source источник
comment
почему вы не можете манипулировать строкой?   -  person JNK    schedule 08.08.2011
comment
Я могу манипулировать строкой, но я уверен, что может быть умный способ, например, в словаре, где хранятся эти переменные, чтобы мы могли их использовать? если нет альтернатив, это будет единственный выход.   -  person Ahmed Magdy    schedule 08.08.2011
comment
Я не думаю, что SQL выводит исключения с такой подробностью - это в сообщении, и это, вероятно, все, что вы получите. Было бы неплохо, если бы он передавал URN или что-то еще для того, что вызвало ошибку, но существует слишком много возможностей для эффективного моделирования.   -  person JNK    schedule 08.08.2011
comment
Вы можете увидеть всю информацию об исключениях здесь: msdn .microsoft.com / en-us / library /   -  person JNK    schedule 08.08.2011


Ответы (1)


К сожалению нет.

Вам нужно будет разобрать текст сообщения. Вы можете найти тексты сообщений и номера ошибок, запросив

SELECT * FROM SYSMESSAGES

person Jakub Konecki    schedule 15.06.2012