Это старый пост, но он все еще актуален сегодня, так как уникальный синтаксис не поддерживается (и не обязательно должен быть с ответом ниже).
Вам нужно будет создать скалярную функцию, привязанную к схеме, которая будет извлекать значение, которое вы хотите, чтобы оно было уникальным.
Затем вы создаете постоянный вычисляемый столбец в таблице, содержащей столбец xml. Этот вычисляемый столбец будет выполнять функцию привязки схемы, определенную выше.
Наконец, вы определяете уникальное ограничение для сохраняемого вычисляемого столбца. Теперь он не только гарантированно уникален, но и индексируется для быстрого поиска.
РЕДАКТИРОВАТЬ -
Это работает для атрибутов верхнего уровня, которые должны быть уникальными в нескольких строках.
Если вам нужна уникальность в коллекции элементов в одном XML-документе, подход аналогичен.
Вы создаете функцию, которая принимает тип данных xml в качестве параметра и возвращает значение BIT.
Затем вы используете xpath для типа данных xml, чтобы самостоятельно проверить уникальность. Если значения уникальны, возвращают 1, если не возвращают 0.
Наконец, вы добавляете проверочное ограничение к таблице, которая вызывает скалярную функцию и проверяет, что результат равен 1.