Может кто-нибудь объяснить мне, почему этот код 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 ..... ???? –
Ну, я очень торопился раскачиваться «сочиться добра», мне нравится его звук;) –
't.x.value' или' x.value', оба работают (я даже тестировал до того, как я разместил!). 't' является псевдонимом таблицы в этом контексте и не требуется, потому что существует только один возможный' x', поэтому имя может быть разрешено однозначно. –