看起来我们正在尝试解析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中提取值的方法。
方法 (xml 数据类型(