Где и как вы хотите импортировать этот XML-файл ??
SQL Server 2005 и выше имеет довольно обширную поддержку XQuery, что означает, что вы можете извлекать биты информации из вашего XML с помощью XPath.
Не зная, что вы пытаетесь сделать, вот небольшой пример.
DECLARE @XmlContent XML
SET @XmlContent = '(put your XML here)'
SELECT
@XmlContent.value('(/CallEventDataFile/headerRecord/productionDateTime)[1]', 'varchar(50)') as 'Production DateTime',
@XmlContent.value('(/CallEventDataFile/headerRecord/recordingEntity)[1]', 'int') as 'Recording Entity'
С помощью этого синтаксиса XQuery вы можете извлечь практически все из вашего XML и легко сохранить его в столбце таблицы.
Кроме того, если вам нужно перечислить список узлов XML, которые находятся внутри тега XML, вы можете использовать функцию .nodes()
в XML:
SELECT
mtsms.record.value('(recordType)[1]', 'int') as 'Record Type',
mtsms.record.value('(serviceCentre)[1]', 'varchar(100)') as 'Service Centre'
FROM
@XmlContents.nodes('//mtSMSRecord') AS mtsms(record)
С помощью этого оператора вы можете получить «виртуальную таблицу» всех <mtSMSRecord>
узлов в вашем XML в виде таблицы «mtsms» и столбца «запись», а затем вы можете извлечь подробную информацию для каждого тега mtSMSRecord и сохранить ее по мере необходимости в ваши реляционные таблицы.
Действительно хорошим вступлением к поддержке XML в SQL Server 2005 и более поздних версиях является Обзор поддержки XML в SQL Server 2005 статья за 15 секунд. Он показывает, какие функции XML доступны и как их использовать.