Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:SQL Server
База данных
SQL AzureУправляемый экземпляр
SQL AzureБаза данных SQL в Microsoft Fabric
Режим AUTO определяет основанную на запросе структуру возвращаемого XML. При определении схемы вложения элементов применяемые в режиме AUTO эвристические процедуры сравнивают значения столбцов в соседних строках. Сравниваются столбцы всех типов, за исключением ntext, text, imageи xml. Проводится также сравнение столбцов (n)varchar(max) и varbinary(max) .
В следующем примере иллюстрируются эвристики режима AUTO, определяющие структуру результирующего XML:
SELECT T1.Id, T2.Id, T1.Name
FROM T1, T2
WHERE Col1 = 1 /* actual predicate goes here*/
ORDER BY T1.Id
FOR XML AUTO;
Чтобы определить, где начинается новый <T1> элемент, сравниваются все значения столбцов T1, кроме ntext, text, image и xml, если ключ таблицы T1 не указан. Далее предположим, что столбец Name имеет тип данных nvarchar(40) и инструкция SELECT возвращает следующий набор строк:
T1.Id T1.Name T2.Id
-----------------------
1 Andrew 2
1 Andrew 3
1 Nancy 4
Эвристики режима AUTO сравнивают все значения столбцов Id и Name таблицы Т1. Первые две строки имеют одинаковые значения для Id столбцов и Name столбцов. В результате в результат добавляется один <T1> элемент с двумя <T2> дочерними элементами.
Далее показан возвращенный XML:
<T1 Id="1" Name="Andrew">
<T2 Id="2" />
<T2 Id="3" />
</T1>
<T1 Id="1" Name="Nancy" >
<T2 Id="4" />
</T>
Теперь предположим, что Name столбец имеет текстовый тип. Эвристики режима AUTO не сравнивают значения этого типа. Вместо этого предполагается, что значения не совпадают. Этот режим приводит к формированию приведенного ниже XML:
<T1 Id="1" Name="Andrew" >
<T2 Id="2" />
</T1>
<T1 Id="1" Name="Andrew" >
<T2 Id="3" />
</T1>
<T1 Id="1" Name="Nancy" >
<T2 Id="4" />
</T1>