第三方组件正在填充nvarchar表中具有某些值的列.大多数情况下,它是一个人类可读的字符串,但偶尔它是XML(如果在第三方comp中有一些内部异常).
作为一个临时解决方案(直到他们修复它并始终使用字符串),我想解析XML数据并提取实际消息.
环境: SQL Server 2005; 字符串总是小于1K; 这张表中可能有几千行.
我遇到了几个解决方案,但我不确定它们是否足够好:
sp_xml_preparedocument存储过程并将其包装在TRY/CATCH块周围.检查返回值/句柄.这些方法似乎都没有效率.我正在寻找类似于ISNUMERIC():ISXML()函数的东西.还有其他更好的检查字符串的方法吗?