OpenXML
* Tutvu õpiku OPENXML näidetega
* Koosta OPENXML päring andmetele,
kus on kirjas autode margid ja registrinumbrid
Volga
123ABC
Fiat
567RET
* Lisa päringule ümber teine päring, mis näitaks registreerimismärgist vaid numbrid
DECLARE @doc xml
SET @doc =
'
Volga
123ABC
Fiat
567RET
'
DECLARE @hdoc INT
EXEC sp_xml_preparedocument @hdoc OUTPUT, @doc
SELECT mark, substring(regnr, 1, 3) as numbrid FROM
(SELECT *
FROM OPENXML(@hdoc, '/autod/auto')
WITH ( mark VARCHAR(40) 'mark'
, regnr CHAR(6) 'regnr')) as tabel1
EXEC sp_xml_removedocument @hdoc
* Loo käsklus salvestatud protseduurina
ALTER PROCEDURE dbo.autoxml2(@doc xml)
AS
BEGIN
DECLARE @hdoc INT
EXEC sp_xml_preparedocument @hdoc OUTPUT, @doc
INSERT INTO AUTOD
SELECT *
FROM OPENXML(@hdoc, '/autod/auto')
WITH ( mark VARCHAR(40) 'mark'
, regnr CHAR(6) 'regnr')
END
* Käivita see
dbo.autoxml2 '
Volga
123ABC
Fiat
567RET
'