熟悉SQLSERVER2000的數據庫管理員都知道,其DTS可以進行數據的導入導出,其實,我們也可以使用Transact-SQL語句進行導入 導出操作。在Transact-SQL語句中,我們主要使用OpenDataSource函數、OPENROWSET函數,關于函數的詳細說明,請參考 SQL聯機幫助。利用下述方法,可以十分容易地實現SQLSERVER、access、EXCEL數據轉換,詳細說明如下:一、SQLSERVER和ACCESS的數據導入導出常規的數據導入導出:使用DTS向導遷移你的Access數據到SQLServer,你可以使用這些步驟: ○1在SQLSERVER企業管理器中的Tools(工具)菜單上,選擇DataTransformation ○2Services(數據轉換服務),然后選擇czdImportData(導入數據)?! ?在ChooseaDataSource(選擇數據源)對話框中選擇MicrosoftAccessastheSource,然后鍵入你的.mdb數據庫(.mdb文件擴展名)的文件名或通過瀏覽尋找該文件?! ?在ChooseaDestination(選擇目標)對話框中,選擇MicrosoftOLE DBPRoviderforSQL Server,選擇數據庫服務器,然后單擊必要的驗證方式。 ○5在SpecifyTableCopy(指定表格復制)或Query(查詢)對話框中,單擊Copytables(復制表格)?!?在SelectSourceTables(選擇源表格)對話框中,單擊SelectAll(全部選定)。下一步,完成。Transact-SQL語句進行導入導出:1.在SQLSERVER里查詢access數據:SELECT*FROMOpenDataSource('Microsoft.Jet.OLEDB.4.0','DataSource="c:/DB.mdb";UserID=Admin;PassWord=')...表名2.將access導入SQLserver在SQLSERVER里運行:SELECT*INTOnewtableFROMOPENDATASOURCE('Microsoft.Jet.OLEDB.4.0','DataSource="c:/DB.mdb";UserID=Admin;Password=')...表名3.將SQLSERVER表里的數據插入到Access表中在SQLSERVER里運行:insertintoOpenDataSource('Microsoft.Jet.OLEDB.4.0','DataSource="c:/DB.mdb";UserID=Admin;Password=')...表名(列名1,列名2)select列名1,列名2fromsql表實例:insertintoOPENROWSET('Microsoft.Jet.OLEDB.4.0','C:/db.mdb';'admin';'',Test)selectid,namefromTestINSERTINTOOPENROWSET('Microsoft.Jet.OLEDB.4.0','c:/trade.mdb';'admin';'',表名)SELECT*FROMsqltablename二、SQLSERVER和EXCEL的數據導入導出1、在SQLSERVER里查詢Excel數據:SELECT*FROMOpenDataSource('Microsoft.Jet.OLEDB.4.0','DataSource="c:/book1.xls";UserID=Admin;Password=;Extendedproperties=Excel5.0')...[Sheet1$]下面是個查詢的示例,它通過用于Jet的OLEDB提供程序查詢Excel電子表格。SELECT*FROMOpenDataSource('Microsoft.Jet.OLEDB.4.0','DataSource="c:/Finance/account.xls";UserID=Admin;Password=;Extendedproperties=Excel5.0')...xactions2、將Excel的數據導入SQLserver:SELECT*intonewtableFROMOpenDataSource('Microsoft.Jet.OLEDB.4.0','DataSource="c:/book1.xls";UserID=Admin;Password=;Extendedproperties=Excel5.0')...[Sheet1$]實例:SELECT*intonewtableFROMOpenDataSource('Microsoft.Jet.OLEDB.4.0','DataSource="c:/Finance/account.xls";UserID=Admin;Password=;Extendedproperties=Excel5.0')...xactions3、將SQLSERVER中查詢到的數據導成一個Excel文件T-SQL代碼:EXECmaster..xp_cmdshell'bcp庫名.dbo.表名outc:/Temp.xls-c-q-S"servername"-U"sa"-P""'參數:S是SQL服務器名;U是用戶;P是密碼說明:還可以導出文本文件等多種格式實例:EXECmaster..xp_cmdshell'bcpsaletesttmp.dbo.CusAccountoutc:/temp1.xls-c-q-S"pmserver"-U"sa"-P"sa"'EXECmaster..xp_cmdshell'bcp"SELECTau_fname,au_lnameFROMpubs..authorsORDERBYau_lname"queryoutC:/authors.xls-c-Sservername-Usa-Ppassword'在VB6中應用ADO導出EXCEL文件代碼:DimcnAsNewADODB.Connectioncn.open"Driver={SQLServer};Server=WEBSVR;DataBase=WebMis;UID=sa;WD=123;"cn.execute"master..xp_cmdshell'bcp"SELECTcol1,col2FROM庫名.dbo.表名"queryoutE:/DT.xls-c-Sservername-Usa-Ppassword'"4、在SQLSERVER里往Excel插入數據:insertintoOpenDataSource('Microsoft.Jet.OLEDB.4.0','DataSource="c:/Temp.xls";UserID=Admin;Password=;Extendedproperties=Excel5.0')...table1(A1,A2,A3)values(1,2,3)T-SQL代碼:INSERTINTOOPENDATASOURCE('Microsoft.JET.OLEDB.4.0','ExtendedProperties=Excel8.0;Datasource=C:/training/inventur.xls')...[Filiale1$](bestand,produkt)VALUES(20,'Test')總結:利用以上語句,我們可以方便地將SQLSERVER、ACCESS和EXCEL電子表格軟件中的數據進行轉換,為我們提供了極大方便!
微軟官方參考:
http://support.microsoft.com/default.aspx?kbid=247412http://support.microsoft.com/default.aspx?scid=kb;zh-cn;146406http://support.microsoft.com/default.aspx?scid=kb;zh-cn;Q295646http://support.microsoft.com/default.aspx?scid=kb;zh-cn;246335
新聞熱點
疑難解答
圖片精選