乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

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

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

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

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

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

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

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

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

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

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

      注:
      ××在bcp后面加了一個查詢語句,并用雙引號括起來

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

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

      SELECT * 
      xactions 



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

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

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


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

      下面補(bǔ)充一個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;

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

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多