新聞中心
SQL Server表中數(shù)據(jù)按條件批量導(dǎo)出為多個Excel文件是本文我們主要要介紹的內(nèi)容,在一次SQL Server數(shù)據(jù)庫的操作中,需要將某個有數(shù)十萬行數(shù)據(jù)的表按類別導(dǎo)出為xls文件,每個類別一個xls。將數(shù)據(jù)表中的數(shù)據(jù)導(dǎo)出并保存為xls簡單,用SSIS或者查詢出來之后另存為都可以。但是,這個表中的分類有數(shù)百個,如果一個個用SSIS或者查詢另存為的話,工作量巨大。前思后想,想到了用while循環(huán)查詢,并用bcp導(dǎo)出的方法。

成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供龍山企業(yè)網(wǎng)站建設(shè),專注與做網(wǎng)站、成都網(wǎng)站設(shè)計、H5技術(shù)、小程序制作等業(yè)務(wù)。10年已為龍山眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進(jìn)行中。
下面是相關(guān)代碼:
- --聲明需要的變量
- declare @sql varchar(600),@TypeID int
- --確認(rèn)***個分類的ID
- select @TypeID=min(TypeID) from t_TestTable
- --當(dāng)存在滿足分類ID的記錄時進(jìn)行處理
- while exists(select 1 from t_TestTable where TypeID=@TypeID)
- begin
- --拼湊需要執(zhí)行的語句
- set @sql='bcp "select * from (select'+'''列名1'''+' AS 列名1,'+'''列名2'''+' AS 列名2,'+'''列名3'''+' AS 列名3'--在xls文件中顯示列名
- set @sql=@sql+' union all select 列名1,列名2,列名3 from t_TestTable where TypeID='+cast(@TypeID as varchar(8))+')a" queryout "F:\datafile\TypeData'+cast(@TypeID as varchar(8))+'.xls" -c -q -S"ServerName" -U"sa" -P"SAPASSWORD" -d"DBName"'--查詢滿足條件的記錄并保存到xls文件中
- --使用xp_cmdshell系統(tǒng)存儲過程執(zhí)行拼湊好的語句(需要使用高級選項開關(guān)預(yù)先開啟cmdshell組件)
- exec master..xp_cmdshell @sql
- --獲得下一個分類的ID(分類ID是不連續(xù)的)
- select @TypeID=isnull(min(TypeID),@TypeID+1) from t_TestTable where TypeID>=@TypeID+1
- end
以上就是SQL Server表中數(shù)據(jù)按條件批量導(dǎo)出為多個Excel文件的實現(xiàn)方法,本文就介紹到這里了,希望本次的介紹能夠?qū)δ兴斋@!
當(dāng)前題目:SQLServer表中數(shù)據(jù)按條件批量導(dǎo)出為多個Excel文件
標(biāo)題來源:http://fisionsoft.com.cn/article/cdjjios.html


咨詢
建站咨詢
