有人可以解释为什么这个T-SQL代码只返回一个值为“1”的行吗?我期待得到两排(“1”和“2”)。我在这里错过了什么吗?为什么OPENXML只返回一个元素
DECLARE @XMLDoc2 XML
SELECT @XMLDoc2 = '<ids><id>1</id><id>2</id></ids>'
DECLARE @handle2 INT
EXEC sp_xml_preparedocument @handle2 OUTPUT, @XMLDoc2
SELECT * FROM OPENXML (@handle2, '/ids', 2) WITH (id INT 'id')
EXEC sp_xml_removedocument @handle2
注意:我使用的是SQL Server 2008中
非常感谢!
应该不是被'选择t.x.value .....'???? – 2009-12-10 22:11:49
那么,我很急于推出'天生渗透',我喜欢它的声音;) – 2009-12-10 22:17:11
't.x.value'或'x.value',这两个工作(我甚至在我发布前测试过!)。 't'是这个上下文中的一个表别名,并不是必需的,因为只有一个可能的'x',所以名字可以毫不含糊地解析。 – 2009-12-10 22:18:27