Третий компонент заполняет столбец nvarchar
в таблице с некоторыми значениями. В большинстве случаев это удобочитаемая строка, но иногда это XML (в случае некоторых внутренних исключений в стороннем comp).
Как временное решение (до тех пор, пока они не исправят его и не будут использовать строку всегда), я хотел бы проанализировать данные XML и извлечь фактическое сообщение.
Среда: SQL Server 2005; строки всегда меньше 1 КБ; в этой таблице может быть несколько тысяч строк.
Я столкнулся с несколькими решениями, но я не уверен, что они достаточно хороши:
- Вызвать
sp_xml_preparedocument
сохраненную proc и обернуть ее вокруг блока TRY/CATCH. Проверьте возвращаемое значение/ручку. - Записать управляемый код (в С#), снова обработать исключение и посмотреть, является ли он допустимой строкой.
Ни один из этих методов не кажется эффективным. Я искал нечто похожее на ISNUMERIC()
: a ISXML()
. Есть ли другой лучший способ проверки строки?