有人可以解釋爲什麼這個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