Como exportar dados do SQL Server para arquivo XML usando BCP

Problema do aluno: Trabalho com SQL Server 2005 e preciso fazer alguns selects e enviar para um arquivo XML. Como faço?

Solução: Primeiro, criamos um database e as tabelas, usando o script abaixo, que deve ser executado no SQL Server Management:

CREATE DATABASE EXEMPLO_BCP
GO
USE EXEMPLO_BCP

CREATE TABLE PRODUTO
(
      COD INT IDENTITY,
     
NOME VARCHAR(50),
      PRECO DEC
(9,2)
)

INSERT INTO PRODUTO VALUES (‘MARTELO’, 32.40)
INSERT INTO PRODUTO VALUES (‘MARRETA’, 18.95)
INSERT INTO PRODUTO VALUES (‘SERROTE’, 45.50)
INSERT INTO PRODUTO VALUES (‘CHAVE DE FENDA’, 8)

Agora, usamos o aplicativo BCP (bulk copy program) para exportar os dados:

EXEC XP_CMDSHELL ‘BCP “SELECT * FROM EXEMPLO_BCP..PRODUTO FOR XML RAW(''PRODUTO''), ELEMENTS, ROOT(''PRODUTOS'')” QUERYOUT C:\SAIDA.XML -S. -T -c’

OBS.: Devemos nos lembrar de habilitar a execução de xp_cmdshell no SQL Server Surface Area Configuration (for features).