Clique aqui para ler todos os artigos desta edição
XML no SQL Server 2000
por John Papa
Este artigo discute |
Este artigo usa as seguintes tecnologias: |
·Uso de XML no SQL Server 2000 ·Manipulação de Dataset via XML ·Uso de Stored Procedures |
Stored Procedures, XML e SQL
Download: DataPoints0506.exe (152KB) |
Chapéu XML no SQL Server |
|
O SQL Server™ 2000 inclui várias características XML que permitem transformar rowsets relacionais para documentos XML hierárquicos, ler documentos XML, e fazer carga massiva de dados via XML. Por exemplo, podemos passar um documento XML para uma stored procedure, fazer join XML com algumas tabelas e retornar um rowset ou mesmo modificar dados no Database. A inclusão da função OPENXML e a declaração FOR XML tem sido instigada pela constante expansão do papel do XML nos atuais sistemas empresariais. Algumas destas características não só suportam o XML como também oferecem melhor desempenho para a carga de grandes volumes de dados.
Neste artigo, discutiremos como poderemos retornar XML do SQL Server através da cláusula T-SQL's XML. Veremos exemplos que mostram os vários modos para retornar dados XML e informações de schema, e mostraremos como transformar o XML para um formato mais inteligível. A seguir, abordaremos o OPENXML, como fazer um join de um documento XML com tabelas de banco de dados e como extrair XML de um DataSet usando os métodos WriteXml e GetXml. O código SQL e um exemplo de projeto ASP.NET encontram-se no download disponível no Web site da MSDN®Magazine. O projeto exemplo também inclui o código para inserir e atualizar os registros no banco de dados XML.
Retornando XML
Quando usado em uma declaração SELECT, a cláusula XML informa ao SQL Server o retorno dos dados na forma de documento XML, em lugar de um rowset padrão. Podemos especificar o modo como: RAW, AUTO ou EXPLICIT. Cada um provê uma forma diferente de transformar o XML (a Tabela 1 mostra uma visão geral de cada modo).
Mode |
Description |
RAW |
Cada registro no rowset é transformado num elemento XML chamado row. Os elementos |
AUTO |
Registros no rowset podem ser transformados em elementos XML aninhados nomeados na cláusula FROM, após as tabelas. Cada coluna que for recuperada será representada como um atributo. |
EXPLICIT |
Temos grande controle sobre como o XML será formatado. No entanto, a sintaxe para o uso do modo EXPLICIT é bem mais complexa. O XSTL e uma prática mais comum e mais aceita para transformação de XML. |
Tabela 1 – Visão Geral dos Modos XML
Por exemplo, se examinarmos a tabela Employees do banco de dados Northwind, o uso do XML RAW, retornaria cada linha de empregado dentro um elemento
SELECT EmployeeID,
FirstName, LastName
FROM Employees
WHERE LastName LIKE 'D%'
FOR XML RAW
" [...] continue lendo...