如何在 SQL Server 存储过程中读取 XML 项或数据?



看起来我们正在尝试解析XML和某些值?我们总是用T.item.value这样做吗?和 T(项目( 这里的别名?我在这里找到了参考 https://learn.microsoft.com/en-us/sql/relational-databases/xml/load-xml-data?view=sql-server-2017 但仍需要澄清。

需要了解这段代码在做什么,以及我在哪里可以了解更多关于编写此类代码的信息,例如什么是 T、T(item(、T.item.value 在这里。

CREATE PROCEDURE [dbo].[MyTestSP] 
@exServers xml = N'<a />' --sample: N'<a><s>abc.com</s><s u="user@example.com>outlook.com</s></a>'  
AS  
BEGIN  
select   
T.item.value('.', 'nvarchar(256)') as ExServer,  
T.item.value('@u', 'nvarchar(256)') as Account  
from @exServers.nodes('a/s') T(item) 
END
GO

您可以从教程阶梯到 XML 开始。在那之后,一切都会清楚。


什么是T?

T@exServers中切碎的 XML 片段表的别名。

什么是T(项目(?

这指定了从切碎节点开始派生表的名称T,并为包含 XML 片段的列命名item

T.item.value

这是一种从别名T的列item中的xml中提取值的方法。

nodes(( 方法 (xml 数据类型(value((

方法 (xml 数据类型(

最新更新