Sql server 如何从SQL Server表中读取XMLColumn的值
我不熟悉SQL Server中的xquery。 这是ReponseRecord表中ErrorXml列中的值。以下是ErrorXML列的示例数据的显示方式 第1行:Sql server 如何从SQL Server表中读取XMLColumn的值,sql-server,xml,xquery,xquery-sql,Sql Server,Xml,Xquery,Xquery Sql,我不熟悉SQL Server中的xquery。 这是ReponseRecord表中ErrorXml列中的值。以下是ErrorXML列的示例数据的显示方式 第1行: <Data> <Error PropertyName="CaseDisplayID"> <ErrorMessage Type="Database">Claim is not in awaiting reprice response state. Current case state is
<Data>
<Error PropertyName="CaseDisplayID">
<ErrorMessage Type="Database">Claim is not in awaiting reprice response state. Current case state is ** Closed (Cancelled) **</ErrorMessage>
</Error>
</Data>
<Data><Error PropertyName="CaseDisplayID" /></Data>
<Data />
索赔未处于等待重新定价响应状态。当前案例状态为**关闭(已取消)**
第2行:
<Data>
<Error PropertyName="CaseDisplayID">
<ErrorMessage Type="Database">Claim is not in awaiting reprice response state. Current case state is ** Closed (Cancelled) **</ErrorMessage>
</Error>
</Data>
<Data><Error PropertyName="CaseDisplayID" /></Data>
<Data />
第3行:
<Data>
<Error PropertyName="CaseDisplayID">
<ErrorMessage Type="Database">Claim is not in awaiting reprice response state. Current case state is ** Closed (Cancelled) **</ErrorMessage>
</Error>
</Data>
<Data><Error PropertyName="CaseDisplayID" /></Data>
<Data />
如果该属性存在,我想在这里读取Error的值 看看这是否有帮助
•检查XML文档中是否存在某个XML节点:
SELECT xmlColumn.exist('declare namespace x="1"; (/x:ParentNode/x:ChildNode)') AS test
FROM dbo.Table
WHERE Column1=22
•要查询XML数据,请执行以下操作:
SELECT xmlColumn.query('declare namespace x="1"; (/x:ParentNode/x:ChildNode)') AS test
FROM dbo.Table
WHERE Column1=22
我认为在您的情况下不需要名称空间,在这种情况下,只需删除它们即可
SELECT xmlColumn.exist('/ParentNode/ChildNode') AS test
FROM dbo.Table
WHERE Column1=22
对不起,我没有任何删除的例子,但它是相同的方法,你可以在这里检查,而不是“查询”或“存在”,只使用删除。你可以在这里查看更多信息
干杯看看这是否有帮助
•检查XML文档中是否存在某个XML节点:
SELECT xmlColumn.exist('declare namespace x="1"; (/x:ParentNode/x:ChildNode)') AS test
FROM dbo.Table
WHERE Column1=22
•要查询XML数据,请执行以下操作:
SELECT xmlColumn.query('declare namespace x="1"; (/x:ParentNode/x:ChildNode)') AS test
FROM dbo.Table
WHERE Column1=22
我认为在您的情况下不需要名称空间,在这种情况下,只需删除它们即可
SELECT xmlColumn.exist('/ParentNode/ChildNode') AS test
FROM dbo.Table
WHERE Column1=22
对不起,我没有任何删除的例子,但它是相同的方法,你可以在这里检查,而不是“查询”或“存在”,只使用删除。你可以在这里查看更多信息
Cheers用于从XML中获取特定值,并检查节点/Data/Error
是否存在
结果:
PropertyName ErrorType ErrorMessage
--------------- --------------- ----------------------------------------------------------------------------------------------------
CaseDisplayID数据库声明未处于等待重新定价响应状态。当前案例状态为**关闭(已取消)**
CaseDisplayID为NULL
用于从XML中获取特定值,并检查节点/Data/Error
是否存在
结果:
PropertyName ErrorType ErrorMessage
--------------- --------------- ----------------------------------------------------------------------------------------------------
CaseDisplayID数据库声明未处于等待重新定价响应状态。当前案例状态为**关闭(已取消)**
CaseDisplayID为NULL