Tôi có xml này:Máy chủ SQL: OPENXML so với SELECT..FROM khi giao dịch với XML?
DECLARE @x XML
SET @x =
'<data>
<add>a</add>
<add>b</add>
<add>c</add>
</data>';
Nhiệm vụ:
Tôi muốn liệt kê các a,b,c
.
phương pháp 1:
SELECT s.value('.', 'VARCHAR(8000)') AS [ADD]
FROM @x.nodes('/data/add') AS t(s)
phương pháp 2:
DECLARE @idoc INT
EXEC sp_xml_preparedocument @idoc OUTPUT, @x
SELECT *
FROM OPENXML(@idoc, '/data/add', 2)
WITH ([add] NVARCHAR(MAX) '.')
cả trong số họ cho tôi:
q uestion:
đó là cách ưa thích?
Có lợi thế nào sau này so với trước đây (hoặc ngược lại) không?
Cá nhân tôi thích cách tiếp cận # 1 - đó là sa rất nhiều trực quan hơn với tôi, và nó không đòi hỏi các bước mở rộng của 'sp_xml_preparedocument' vv - chỉ đơn giản dễ dàng hơn để sử dụng –
@marc_s Và cùng với đó ... có nghĩa là # 1 có thể được sử dụng trong Views và như vậy. –