如何将 table 的 XML 列插入到包含相同字段的另一个 table 中
How to insert XML column of a table in to another table incuding the same fields
我有一个 table 包括 XML 列,它的名称是 Bookmarks,select 查询的结果是这样的:
SELECT [Bookmarks] FROM [prs_Decrees]
<Bookmarks>
<Bookmark BookmarkGuid="f892e0ef-a498-4ece-9933-ab0154cd6c90" Title="AcceptableWorkinDaysMinusAbsenceDays" Value="-2" />
<Bookmark BookmarkGuid="fe149c4d-1ae9-43c5-9403-11c06b8be567" Title="AcceptableWorkinDaysMinusAbsenceMonths" Value="-3" />
<Bookmark BookmarkGuid="53669ea1-bc5b-4177-af4f-9642d1419549" Title="AcceptableWorkinDaysMinusAbsenceYears" Value="-4" />
<Bookmark BookmarkGuid="e85da9b9-31a4-4ee4-a0b1-598678a631a4" Title="PersonnelExtra" Value="Teacher"/>
</Bookmarks>
此外,我创建了一个 table,包括 Title
和 Value
列。
我想知道如何读取 XML 类型并将其内容插入另一个 table?
您可以尝试使用 XQuery 来获取 XML 个值。
查询 1:
SELECT x.v.value('(@Title)[1]', 'varchar(200)') Title,
x.v.value('(@Value)[1]', 'varchar(200)') Value
FROM [prs_Decrees] t
CROSS APPLY t.Bookmarks.nodes('/Bookmarks/Bookmark') as x(v)
| Title | Value |
|----------------------------------------|---------|
| AcceptableWorkinDaysMinusAbsenceDays | -2 |
| AcceptableWorkinDaysMinusAbsenceMonths | -3 |
| AcceptableWorkinDaysMinusAbsenceYears | -4 |
| PersonnelExtra | Teacher |
如果你想从 XML 值插入到另一个 table,你可以在下面尝试。
INSERT INTO anotherTable (Title,Value)
SELECT x.v.value('(@Title)[1]', 'varchar(200)') Title,
x.v.value('(@Value)[1]', 'varchar(200)') Value
FROM [prs_Decrees] t
CROSS APPLY t.Bookmarks.nodes('/Bookmarks/Bookmark') as x(v)
我有一个 table 包括 XML 列,它的名称是 Bookmarks,select 查询的结果是这样的:
SELECT [Bookmarks] FROM [prs_Decrees]
<Bookmarks>
<Bookmark BookmarkGuid="f892e0ef-a498-4ece-9933-ab0154cd6c90" Title="AcceptableWorkinDaysMinusAbsenceDays" Value="-2" />
<Bookmark BookmarkGuid="fe149c4d-1ae9-43c5-9403-11c06b8be567" Title="AcceptableWorkinDaysMinusAbsenceMonths" Value="-3" />
<Bookmark BookmarkGuid="53669ea1-bc5b-4177-af4f-9642d1419549" Title="AcceptableWorkinDaysMinusAbsenceYears" Value="-4" />
<Bookmark BookmarkGuid="e85da9b9-31a4-4ee4-a0b1-598678a631a4" Title="PersonnelExtra" Value="Teacher"/>
</Bookmarks>
此外,我创建了一个 table,包括 Title
和 Value
列。
我想知道如何读取 XML 类型并将其内容插入另一个 table?
您可以尝试使用 XQuery 来获取 XML 个值。
查询 1:
SELECT x.v.value('(@Title)[1]', 'varchar(200)') Title,
x.v.value('(@Value)[1]', 'varchar(200)') Value
FROM [prs_Decrees] t
CROSS APPLY t.Bookmarks.nodes('/Bookmarks/Bookmark') as x(v)
| Title | Value |
|----------------------------------------|---------|
| AcceptableWorkinDaysMinusAbsenceDays | -2 |
| AcceptableWorkinDaysMinusAbsenceMonths | -3 |
| AcceptableWorkinDaysMinusAbsenceYears | -4 |
| PersonnelExtra | Teacher |
如果你想从 XML 值插入到另一个 table,你可以在下面尝试。
INSERT INTO anotherTable (Title,Value)
SELECT x.v.value('(@Title)[1]', 'varchar(200)') Title,
x.v.value('(@Value)[1]', 'varchar(200)') Value
FROM [prs_Decrees] t
CROSS APPLY t.Bookmarks.nodes('/Bookmarks/Bookmark') as x(v)