"Bulkload" av XML i SQL 2005

När man jobbar med XML i SQL 2005 så finns det ju flera anledningar att man enkelt vill läsa in filer från disk och då helst via T-SQL. Det kan exempelvis vara XML-data eller XSD-scheman. Med SQL 2005 har vi fått stöd för just detta utan att behöva jobba "Extended stored procedures" eller via CLR:en i ett datalager eller direkt i databasen.

Med frågan nedan så läses en fil in i en tabell, men man kan enkelt skriva om frågan så att man får det inlästa XML-datat i en variabel om det passar bättre.

CREATE TABLE tmpXML(id INT IDENTITY(1,1), x XML)

INSERT INTO tmpXML(x) SELECT * FROM OPENROWSET (BULK 'c:\doc.xml', SINGLE_CLOB) AS x