Зачем вообще это разыгрывать?Просто вставьте их в столбец XML во временной таблице и запустите Xquery, чтобы сравнить их с другой таблицей.РЕДАКТИРОВАТЬ: Включенный пример сравнения.Существует множество способов выполнить запрос к XML, чтобы получить одинаковые строки - то, как именно будет написан этот запрос, будет зависеть от предпочтений, требований и т. Д. Я использовал простую группу по / count, ноМожно использовать самообъединение, WHERE EXISTS
против столбцов, в которых выполняется поиск дубликатов, назовите его.
CREATE TABLE #Test (SomeXML NVARCHAR(MAX))
CREATE TABLE #XML (SomeXML XML)
INSERT #Test (SomeXML)
VALUES('<root><book b="b" c="c" a="a"/></root>')
,('<root><book a="a" b="b" c="c"/></root>')
INSERT #XML (SomeXML)
SELECT SomeXML FROM #Test;
WITH XMLCompare (a,b,c)
AS
(
SELECT
x.c.value('@a[1]','char(1)') AS a
,x.c.value('@b[1]','char(1)') AS b
,x.c.value('@c[1]','char(1)') AS c
FROM #XML
CROSS APPLY SomeXMl.nodes('/root/book') X(C)
)
SELECT
a
,b
,c
FROM XMLCompare as a
GROUP BY
a
,b
,c
HAVING COUNT(*) >1