通過SQL語句直接把表導出為XML格式
更新時間:2010年09月12日 21:31:09 作者:
有時候我們需要把從數(shù)據(jù)庫里讀出的數(shù)據(jù)直接保存為XML的形式,這里我們通過SQL語句就可以達到這種效果。
首先建立一張表:
USE [ip]
GO
/****** 對象: Table [dbo].[SiteData] 腳本日期: 09/11/2010 17:41:11 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[SiteData](
[id] [int] IDENTITY(1,1) NOT NULL,
[SiteName] [varchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,
[SiteAdd] [varchar](100) COLLATE Chinese_PRC_CI_AS NOT NULL,
[BaiduSort] [int] NOT NULL CONSTRAINT [DF_SiteData_BaiduSort] DEFAULT ((0)),
[BaiduShouLu] [int] NOT NULL CONSTRAINT [DF_SiteData_BaiduShouLu] DEFAULT ((0)),
CONSTRAINT [PK_SiteData] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
SELECT
1 AS Tag,
NULL AS Parent,
SiteName AS [site!1!網(wǎng)站名稱],
SiteAdd AS [site!1!網(wǎng)站地址],
BaiduSort AS [site!1!百度排名],
BaiduShouLu AS [site!1!百度收錄]
FROM SiteData order by BaiduShouLu FOR XML EXPLICIT
<site 網(wǎng)站名稱="博客園" 網(wǎng)站地址="http://www.dbjr.com.cn/" 百度排名="20" 百度收錄="6020000" />
我們現(xiàn)在得到的這個XML代碼是不包含XML的表頭以及編碼格式的,如果我們想做的更傻瓜化一些可以直接在后臺自定義添加以下內(nèi)容:
//content 是我們讀取數(shù)據(jù)庫后得到的string字符串
content = content.Replace("<", "<").Replace(""", "\"").Replace(">", ">");
//自定義XML編碼格式和父節(jié)點名稱
content = "<?xml version=\"1.0\" encoding=\"utf-8\"?><start>" + content + "</start>
//輸出XML到本地路徑using
(StreamWriter sw = new StreamWriter(@"E:\SoftUpdate\sql2xml.xml")) { sw.Write(content); }
復制代碼 代碼如下:
USE [ip]
GO
/****** 對象: Table [dbo].[SiteData] 腳本日期: 09/11/2010 17:41:11 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[SiteData](
[id] [int] IDENTITY(1,1) NOT NULL,
[SiteName] [varchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,
[SiteAdd] [varchar](100) COLLATE Chinese_PRC_CI_AS NOT NULL,
[BaiduSort] [int] NOT NULL CONSTRAINT [DF_SiteData_BaiduSort] DEFAULT ((0)),
[BaiduShouLu] [int] NOT NULL CONSTRAINT [DF_SiteData_BaiduShouLu] DEFAULT ((0)),
CONSTRAINT [PK_SiteData] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
表中數(shù)據(jù)如下:
表中字段分別為:編號、網(wǎng)站名稱、網(wǎng)站地址、百度排名、百度收錄。
現(xiàn)在我們就把這張表直接導出為XML格式,SQL語句如下:
復制代碼 代碼如下:
SELECT
1 AS Tag,
NULL AS Parent,
SiteName AS [site!1!網(wǎng)站名稱],
SiteAdd AS [site!1!網(wǎng)站地址],
BaiduSort AS [site!1!百度排名],
BaiduShouLu AS [site!1!百度收錄]
FROM SiteData order by BaiduShouLu FOR XML EXPLICIT
運行這條語句之后,我們在SQL Server2005的運行結果里可以看到如下內(nèi)容:
我們可以看到,這個XML的節(jié)點的內(nèi)容我們是可以在SQL與距離進行自定義的,這個時候只要我們點擊一下這個輸出結果,就能導出XML格式的一段代碼了。
我們將會得到:
復制代碼 代碼如下:
<site 網(wǎng)站名稱="博客園" 網(wǎng)站地址="http://www.dbjr.com.cn/" 百度排名="20" 百度收錄="6020000" />
我們現(xiàn)在得到的這個XML代碼是不包含XML的表頭以及編碼格式的,如果我們想做的更傻瓜化一些可以直接在后臺自定義添加以下內(nèi)容:
復制代碼 代碼如下:
//content 是我們讀取數(shù)據(jù)庫后得到的string字符串
content = content.Replace("<", "<").Replace(""", "\"").Replace(">", ">");
//自定義XML編碼格式和父節(jié)點名稱
content = "<?xml version=\"1.0\" encoding=\"utf-8\"?><start>" + content + "</start>
//輸出XML到本地路徑using
(StreamWriter sw = new StreamWriter(@"E:\SoftUpdate\sql2xml.xml")) { sw.Write(content); }
相關文章
SQL?Server數(shù)據(jù)庫備份和恢復數(shù)據(jù)庫的全過程
最近在功能調試前需要先將測試數(shù)據(jù)庫備份,然后功能調試之后再將測試數(shù)據(jù)庫還原,這樣就可以重復的進行功能調試,這篇文章主要給大家介紹了關于SQL?Server數(shù)據(jù)庫備份和恢復數(shù)據(jù)庫的相關資料,需要的朋友可以參考下2022-06-06SQL Server中通用數(shù)據(jù)庫角色權限的處理詳解
這篇文章主要給大家介紹了關于SQL Server中通用數(shù)據(jù)庫角色權限處理的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2018-10-10sql 查詢結果合并union all用法_數(shù)據(jù)庫技巧
sql語句查詢結果合并union all用法_數(shù)據(jù)庫技巧,需要的朋友可以參考下。2009-11-11