Hãy nói rằng tôi có hai miếng sau của XML trong cơ sở dữ liệu của tôiKết hợp XML trong một SQL Server
<!-- XML 1 -->
<pairs>
<item key="a">xml 1 a value</item>
<item key="b">xml 1 b value</item>
<item key="c">xml 1 c value</item>
</pairs>
<!-- XML 2 -->
<pairs>
<item key="c">xml 2 c value</item>
<item key="d">xml 2 d value</item>
<item key="e">xml 1 e value</item>
</pairs>
Những thông tin này được lưu trữ trong hai bảng riêng biệt bằng cách sử dụng XML
datatype, bổ sung cột XML này được liên kết với một schema mô tả định dạng của xml dự kiến ví dụ
[PairData] [xml](CONTENT [foo].[Pairs]) NULL
trong một thủ tục/chức năng lưu trữ tôi muốn hợp nhất hai cấu trúc XML như sau:
mụca, b
từ mảnh thứ hai của xml, chúng tôi đã thực hiện::
<pairs>
<item key="a">xml 1 a value</item>
<item key="b">xml 1 b value</item>
<item key="c">xml 2 c value</item>
<item key="d">xml 2 d value</item>
<item key="e">xml 2 e value</item>
</pairs>
mục Vì vậy, từ phần đầu tiên của xml chúng tôi đã đưa
c, d, e
Chú ý rằng hai mảnh của XML có một mục chung với khóa:
c
Trong trường hợp này, giá trị từ xml 2 nên được sử dụng trong quá trình hợp nhất xml (loại bỏ giá trị từ xml 1). Một trường hợp khác là XML 1 hoặc 2 có thể là NULL do đó quá trình hợp nhất nên xử lý điều này và đơn giản là trả về giá trị còn lại. Hoặc cả hai có thể là NULL, trong đó trường hợp NULL được trả về.
Ngoài ra, trong thực hiện hiện tại, chúng tôi sẽ trả về cả hai tài liệu XML từ DB và thực hiện hợp nhất mã. Tuy nhiên chúng tôi muốn có sự hợp nhất này được thực hiện trong DB như nhiều quá trình không liên quan được gọi là proc này.
Câu trả lời tùy thuộc vào lưu trữ dữ liệu. (ví dụ: nguồn của bạn là một bảng, một cột xml hoặc một chuỗi ký tự). Sẽ tốt hơn nếu bạn có thể cung cấp thêm thông tin. –
Chúc mừng nhận xét, câu hỏi được cập nhật. – MrEyes