У меня есть следующий код, который работает нормально и возвращает ожидаемые результаты:
DECLARE @xmlList xml
SET @xmlList = '<Tx><T>1</T><T>2</T><T>3</T></Tx>'
SELECT
X.Y.value('.', 'varchar(10)') AS [ID], 'OK' AS [Status]
FROM @xmlList.nodes('/Tx/T') X(Y)
Однако он также принимает, когда я предоставляю ему следующую структуру и возвращает те же результаты:
SET @xmlList = '<Tx><T>1</T></Tx><Tx><T>2</T><T>3</T></Tx>'
Обратите внимание, что у меня нет корневого элемента.
У меня вопрос: что мне нужно изменить, чтобы заставить код принять первую структуру как допустимую и отклонить другую?
Спасибо,
TheBlueSky