For output as attributes
SELECT [col_list]
FROM [table]
FOR XML AUTO
For output as elements
SELECT [col_list]
FROM
[table]
FOR XML AUTO, ELEMENTS
For output as elements binay
SELECT [col_list]
FROM [table]
FOR XML AUTO, BASE64 BINARY, ROOT('root')
DECLARE @myDoc xml
SET @myDoc = (
SELECT *
FROM OPENROWSET(BULK 'full_file_name.xml', SINGLE_CLOB) AS alias
)
Insert from XML
-- Execute a SELECT statement that uses the OPENXML rowset provider.
SELECT @myDoc = bulkColumn
FROM OPENROWSET(BULK, 'file-name', SINGLE_CLOB) AS xmData
EXEC sp_xml_preparedocument @idoc OUTPUT, @myDoc
INSERT INTO [table_name]
(
[col_def]
)
SELECT *
FROM OPENXML (@idoc, 'xpath-to-node', 0)-- 0 xml has attributes
WITH
(
[col_def]
)
EXEC sp_xml_removedocument @idoc
Update from XML
EXEC sp_xml_preparedocument @idoc OUTPUT, @myDoc
UPDATE [table]
SET [col] = alias.[col]
FROM OPENXML (@idoc, 'xpath-to-node', 0)
WITH
(
[col1] [col1_type],
[col2] [col2_type]
) [alias]
WHERE [table].[col] = alias.[col]