在SQL Server中將數(shù)據(jù)導(dǎo)出為XML和Json的方法
有時(shí)候需要一次性將SQL Server中的數(shù)據(jù)導(dǎo)出給其他部門的也許進(jìn)行關(guān)聯(lián)或分析,這種需求對(duì)于SSIS來(lái)說當(dāng)然是非常簡(jiǎn)單,但很多時(shí)候僅僅需要一次性導(dǎo)出這些數(shù)據(jù)而建立一個(gè)SSIS包就顯得小題大做,而SQL Server的導(dǎo)入導(dǎo)出工具其中BUG還是蠻多的,最簡(jiǎn)單的辦法是BCP。
數(shù)據(jù)導(dǎo)出為XML
在SQL Server 2005之后提供了一個(gè)for xml子句在關(guān)系數(shù)據(jù)庫(kù)中原生支持XML。通過該命令可以將二維關(guān)系結(jié)果集轉(zhuǎn)換為XML,通過BCP就可以將數(shù)據(jù)存為XML了。
例如下面的數(shù)據(jù):
我們可以通過如下BCP命令(注意不能有回車)將其導(dǎo)出為XML文件,并保存:
BCP "SELECT TOP 30 [bom_no],[LEVEL] FROM [sqladmin].[dbo].[bom] FOR XML path,TYPE, ELEMENTS ,ROOT('RegionSales')" QUERYOUT "d:\temp\test.XML" -c -t -T -S localhost
執(zhí)行完成后查看Test.XML文件,如下圖所示??梢钥吹轿募袷椒浅G逦苋菀拙涂梢詫?dǎo)入到其他系統(tǒng)了。
數(shù)據(jù)導(dǎo)出為JSON
如果希望將SQL Server中數(shù)據(jù)導(dǎo)出為Json,雖然這種操作在應(yīng)用程序里已經(jīng)有非常成熟的方法,但SQL Server其實(shí)并沒有原生支持這種方式(小道消息,下個(gè)版本會(huì)支持)。我推薦使用這篇帖子的方式:http://jaminquimby.com/servers/95-sql/sql-2008/145-code-tsql-convert-query-to-json來(lái)做。將該帖子所提供的存儲(chǔ)過程建立完成后,使用如下BCP命令:
執(zhí)行完成后,得到結(jié)果如下圖:
相關(guān)文章
SqlServer服務(wù)中利用觸發(fā)器對(duì)指定賬戶進(jìn)行登錄ip限制提升安全性操作
這篇文章主要介紹了SqlServer服務(wù)中利用觸發(fā)器對(duì)指定賬戶進(jìn)行登錄ip限制提升安全性,本文給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-02-02用sql腳本創(chuàng)建sqlserver數(shù)據(jù)庫(kù)觸發(fā)器范例語(yǔ)句
創(chuàng)建SqlServer數(shù)據(jù)庫(kù)觸發(fā)器腳本范例,方便大家用sql來(lái)創(chuàng)建觸發(fā)器,學(xué)習(xí)sqlserver的朋友可以參考下。2010-09-09SQL Server2022版+SSMS下載安裝教程(保姆級(jí))
本文主要介紹了SQL Server2022版+SSMS下載安裝教程,文中通過圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-10-10有關(guān)數(shù)據(jù)庫(kù)SQL遞歸查詢?cè)诓煌瑪?shù)據(jù)庫(kù)中的實(shí)現(xiàn)方法
這篇文章主要介紹了有關(guān)數(shù)據(jù)庫(kù)SQL遞歸查詢?cè)诓煌瑪?shù)據(jù)庫(kù)中的實(shí)現(xiàn)方法的相關(guān)資料,需要的朋友可以參考下2015-10-10SQL Server定時(shí)收縮數(shù)據(jù)庫(kù)日志為指定大小的示例代碼
SQL Server提供了DBCC SHRINKFILE 命令來(lái)清理事務(wù)日志文件,該命令可以縮小指定文件的大小,并釋放磁盤空間,本文給大家介紹了SQL Server如何定時(shí)收縮數(shù)據(jù)庫(kù)日志為指定大小,需要的朋友可以參考下2024-03-03使用linux?CentOS本地部署SQL?Server數(shù)據(jù)庫(kù)超詳細(xì)步驟
作為一名Linux愛好者,我們?cè)谑褂肔inux系統(tǒng)的時(shí)候,經(jīng)常需要使用到數(shù)據(jù)庫(kù),下面這篇文章主要給大家介紹了關(guān)于使用linux?CentOS本地部署SQL?Server數(shù)據(jù)庫(kù)的超詳細(xì)步驟,需要的朋友可以參考下2024-01-01Sql注入原理簡(jiǎn)介_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
所謂SQL注入,就是通過把SQL命令插入到Web表單遞交或輸入域名或頁(yè)面請(qǐng)求的查詢字符串,最終達(dá)到欺騙服務(wù)器執(zhí)行惡意的SQL命令。下面通過本文給大家分享sql 注入原理解析,感興趣的朋友一起看看吧2017-08-08SQL Server誤區(qū)30日談 第21天 數(shù)據(jù)損壞可以通過重啟SQL Server來(lái)修復(fù)
SQL Server中沒有任何一項(xiàng)操作可以修復(fù)數(shù)據(jù)損壞。損壞的頁(yè)當(dāng)然需要通過某種機(jī)制進(jìn)行修復(fù)或是恢復(fù)-但絕不是通過重啟動(dòng)SQL Server,Windows亦或是分離附加數(shù)據(jù)庫(kù)2013-01-01SQL SERVER 數(shù)據(jù)庫(kù)備份的三種策略及語(yǔ)句
這篇文章主要介紹了SQL SERVER 數(shù)據(jù)庫(kù)備份的三種策略及語(yǔ)句,需要的朋友可以參考下2017-02-02