久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

也談SQL Server表與Excel,、Access數(shù)據(jù)互導(dǎo)(使用T

 悟靜 2012-04-30
今天,,那個(gè)新來(lái)的MM又來(lái)問(wèn)我如何使用T-SQL語(yǔ)句進(jìn)行 SQL Server表與Excel,、Access數(shù)據(jù)互導(dǎo)的問(wèn)題了,看來(lái)她是吃定我了,,,,,,什么時(shí)候是個(gè)盡頭啊,,,,,,,,555555555,,,,,,,,
         不過(guò)也好,,正好寫些東西,,免得以后忘記了,或許對(duì)大家還有些幫助,,,,,,,呵呵,,,,,只能自我安慰一下了,。。

1,、SQL Server導(dǎo)出為Excel:

        要用T-SQL語(yǔ)句直接導(dǎo)出至Excel工作薄,,就必須借用SQL Server管理器的一個(gè)擴(kuò)展存儲(chǔ)過(guò)程:“xp_cmdshell”,,此過(guò)程的作用為“以操作系統(tǒng)命令行解釋器的方式執(zhí)行給定的命令字符串,并以文本行方式返回任何輸出,?!毕旅鏋槎x示例:
EXEC master..xp_cmdshell 'bcp 庫(kù)名.dbo.表名out c:\Book3.xls -c -q -S"servername" -U"sa" -P""'

參數(shù):S 是SQL服務(wù)器名;U是用戶名,;P是密碼,沒有就空著

說(shuō)明:其實(shí)用這個(gè)過(guò)程導(dǎo)出的格式實(shí)質(zhì)上就是文本格式的,,不信的話在導(dǎo)出的Excel表中改動(dòng)一下再保存看看。

    實(shí)際例子與說(shuō)明如下:
A,,將表整個(gè)導(dǎo)出至Excel:

注:
××northwind.dbo.orders,,為數(shù)據(jù)庫(kù)名+擁有者+表名

××直接導(dǎo)出用“out”關(guān)健字

-------------------------------------------
B,利用查詢來(lái)導(dǎo)出部分字段至Excel:

注:
××在bcp后面加了一個(gè)查詢語(yǔ)句,,并用雙引號(hào)括起來(lái)

××利用查詢要用“queryout”關(guān)鍵字 

2,、Excel導(dǎo)入SQL Server表
        在SQL Server中,有定義一個(gè)OpenDateSource函數(shù),,用于引用那些不經(jīng)常訪問(wèn)的 OLE DB 數(shù)據(jù)源,,而我們的數(shù)據(jù)互導(dǎo)操作,就是建立在這個(gè)函數(shù)之上,。
        
        首先看一個(gè)T-SQL幫助中的示例,,描述如下:
--下面是個(gè)查詢的示例,,它通過(guò)用于 Jet 的 OLE DB 提供程序查詢 Excel 電子表格,。

SELECT * 
xactions 



 如果你直接引用這個(gè)示例進(jìn)行查詢,那么肯定是通不過(guò)的,。
關(guān)鍵在于語(yǔ)句中的兩個(gè)地方需要修改,,1為Data Source處,雙引號(hào)內(nèi)為Excel表格的實(shí)際存放位置,,要修改為你想查詢的Excel表實(shí)際完整路徑,;2為最后的...xactions,其實(shí)這里代表的是要進(jìn)行的某些動(dòng)作,,下面會(huì)講,,這里修改成用中括號(hào)包圍的Excel表中工作表名字(加上一個(gè)$)就可以了,如[Sheet1$],。當(dāng)然,,還可以將Excel 5.0改為Excel 9.0,因?yàn)?.0是以前的老版本了,。 

實(shí)例說(shuō)明如下: 
    
A,、插入Excel中的資料到現(xiàn)存的sql數(shù)據(jù)庫(kù)表中(假設(shè)C盤有excel表book1.xls,book1.xls中有個(gè)工作表sheet1,,sheet1中有兩列id和Name,;而同時(shí)sql數(shù)據(jù)庫(kù)中也有一個(gè)表A):
insert into A SELECT id,Name
[sheet1$]
注意:
不要用select * ,,否則列的次序會(huì)亂,資料內(nèi)容也會(huì)亂,,無(wú)法插入成功,,慎重!,!易錯(cuò),。 

B、插入excel表中資料到sql數(shù)據(jù)庫(kù)并新建一個(gè)sql表(excel的假設(shè)同上):
select convert(int,id)as id,Name into A
[sheet1$]
注意:
在select 列中最好用convert進(jìn)行顯示類型轉(zhuǎn)換,,否則資料類型可能會(huì)不如預(yù)期,。 


3,補(bǔ)充:以上是 SQL Server與Excel的數(shù)據(jù)互導(dǎo),,而Access和Excel的基本一樣,,只是要去掉Extended properties聲明,一樣easy,。 

下面補(bǔ)充一個(gè)Delphi的例子:(導(dǎo)出為excel表): 
        ADOQ1.Close; 
        ADOQ1.SQL.Clear; 
       QSTR :=  'INSERT INTO CTable (Name1,Sex,ID) SELECT Name,Sex,IDNo FROM [excel 9.0;database=' + XlsName + '].[sheet1$]',;
       ADOQ1.Parameters.Clear;
       ADOQ1.ParamCheck:=FALSE;
       ADOQ1.SQL.Text := QSTR;
       ADOQ1.Execsql;

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多