Режим OPENXML
Режим OPENXML служит прямо противоположной цели. Он создает набор данных из документа XML, существующего в файловой системе. Если документ XML генерируется “на лету”, данная функция используется совместно с хранимыми процедурами sp_xml_praparedocu — ment и sp_xml_remove_document. Первая из них создает реальный документ, который можно загрузить с помощью функции OPENXML, а вторая удаляет документ, в котором отпала необходимость. Существует множество ограничений на использование данных процедур; более полную информацию о них можно получить в документации к СУБД. Поддержка данного подхода сохранилась (естественно, для обратной совместимости) и была расширена в версиях SQL Server 2005 и 2008, в дополнение к полностью новой встроенной поддержке XML. Однако гораздо надежнее использовать солее совместимые со стандартом средства XPath и XQuery. Все три ведущие СУБД предлагают широкую поддержку типа данных XML и связанных с этим типом операций, а также большинства средств, определенных в стандарте SQL:2006. Детали реализации этой поддержки варьируются в разных СУБД.
Документы XML внутри СУБД могут храниться в различных форматах, в частности, в виде неструктурированных символьных строк, в разделенном на реляционные таблицы виде и как встроенный тип данных XML. Хранение, извлечение и обработка информации XML предполагают понимание концепций XQuery, XPath и SQL/XML, обеспечивающих высокую детализацию операций — на уровне элементов и атрибутов XML. Столбцы с типом данных XML можно индексировать практически так же, как и столбцы с другими типами данных. еме XML посвящено множество ресурсов, включая общеизвестный сайт Www. w3.org — первоисточник оригинальной спецификации (правда, не всегда достаточно вразумительной). Среди других источников стоит упомянуть документацию СУБД, тематические блоги, вебстраницы и, естественно, книги. SQL и процедурное программирование
Перед тем как выполнить инструкцию SQL, клиентское приложение, отправляющее эту инструкцию, должно подключиться к СУБД. Это подключение можно установить с помощью широкого спектра механизмов: от закрытого интерфейса уровня вызовов до средств Java Database Conectivity и ADO. NET.