使用 T SQL SP 构建 XML 并执行 SP 以插入到表中



我对t-sql有点陌生,我有一个构建xml blob的存储过程。如何生成插入查询以将从存储过程创建的 xml 插入到表中?

下面是一个简单的示例,应该在 SQL Management Studio 2005 及更高版本中自解压:

DECLARE @Xml XML = '<Root><Instance Id="1" Val="Hello">There</Instance><Instance Id="2" Val="How">Are You?</Instance></Root>'
SELECT
x.query('.') AS queryingtheentireNode
, x.value('@Id', 'int') AS AttributeForId
, x.value('@Val', 'varchar(16)') AS AttributeForVal
, x.value('.', 'varchar(16)') AS TextInsideTheNode
FROM @Xml.nodes('/Root/Instance') AS y(x)

本质上,xml是一个三维对象。 对于 from 状态,我采用单个变量并通过说"节点"将其扩展到更多。 然后,我指定根节点,然后指定唯一的其他子节点。 然后我缩写为 y(x(。 我不知道为什么 MS 需要两个这样的值,但如果你做"作为 x"它会失败。 然后我可以将这个新引用的节点"查询"为 x.query。 或者我可以从中找到一个特定的"价值"。 我会在谷歌上寻找tsql xml节点,xml查询和xml值。 还有其他口味,但恕我直言,这些方法更容易使用。

像这样:

INSERT myschemafortable.xmldate(xmlblob)
EXEC myschemaforsp.build_xml_blob;

您可以从这里获得更多信息。