請問怎麽實現sql server直接讀取資料到database中的表中?麻煩盡量詳細點哦,謝謝。

解决方案 »

  1.   

    select * from OpenRowset('MSDASQL', 'Driver={Microsoft Text Driver (*.txt; *.csv)};
    DefaultDir=d:\;','select * from sql_end.csv')
      

  2.   

    http://blog.csdn.net/jetcui1/archive/2007/04/27/1587828.aspxSELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 
      'Data Source="D:\RadioConfigurationData-1-LAN1-10-RNC10-20070118.xls"; 
      User ID=Admin;Password=;Extended properties=Excel 8.0')...UE_Inter_frequence_Measurement$ 解释:'Microsoft.Jet.OLEDB.4.0'是ODBC驱动的版本'Data Source="D:\RadioConfigurationData-1-LAN1-10-RNC10-20070118.xls':设置外部数据源Extended properties=Excel 8.0':Excle的版本号UE_Inter_frequence_Measurement:sheet的名字,必须是英文,之前的三个点和之后的美元符号都必须要查询到的数据可以直接插入到表中
      

  3.   

    csv文件啊参考:
    http://community.csdn.net/Expert/topic/5489/5489962.xml?temp=.5580866
      

  4.   

    恩,謝謝!那ODBC驱动的版本和sheet的名字怎麽看啊?呵呵。。非常菜哦!!!
      

  5.   

    怎麽沒有人理我呢?
    我用以下方法試了一下:
    exec master..xp_cmdshell   'dir  E:\LA\Test.xls  /b >tmp.txt'create table CsvTest(path varchar(100))
    insert CsvTest
    select * from OpenRowset('MSDASQL', 'Driver={Microsoft Text Driver (*.txt; *.csv)};
    DefaultDir=E:\LA\;','select *  from Test.xls')
    報錯:
    伺服器: 訊息 7399,層級 16,狀態 1,行 2
    OLE DB Provider 'MSDASQL' 報告了錯誤。 
    [OLE/DB provider returned message: [Microsoft][ODBC Text Driver] 無法更新。資料庫或物件是唯讀的。]
    OLE DB 錯誤追蹤 [OLE/DB Provider 'MSDASQL' IColumnsInfo::GetColumnsInfo returned 0x80004005:   ]。
    請問怎麽解決哦!!!
      

  6.   

    先用这个查出来记录
    select * from OpenRowset('MSDASQL', 'Driver={Microsoft Text Driver (*.txt; *.csv)};
    DefaultDir=E:\LA\;','select * from Test.xls')
    再将记录中的列数与你创建的表CsvTest对照一下
      

  7.   

    to chuifengde(树上的鸟儿):
    謝謝你的熱心,但是我用:
    select * from OpenRowset('MSDASQL', 'Driver={Microsoft Text Driver (*.txt; *.csv)};
    DefaultDir=E:\LA\;','select * from Test.xls')
    還是報錯:
    伺服器: 訊息 7399,層級 16,狀態 1,行 1
    OLE DB Provider 'MSDASQL' 報告了錯誤。 
    [OLE/DB provider returned message: [Microsoft][ODBC Text Driver] 無法更新。資料庫或物件是唯讀的。]
    OLE DB 錯誤追蹤 [OLE/DB Provider 'MSDASQL' IColumnsInfo::GetColumnsInfo returned 0x80004005:   ]。
      

  8.   

    但是我看到在master數據庫CsvTest已經存在
      

  9.   

    当你用这个语句的时候,不能打开这个目录下的Test.xls文件,如果打开了要先关掉
      

  10.   

    恩,我関掉了也是不行,我用excel文件也不行。
    create table CsvTest(path varchar(100))
    insert CsvTest
    select * from OpenRowset('MSDASQL', 'Driver={Microsoft Text Driver (*.txt; *.xls)};
    DefaultDir=E:\LA\;','select *  from Test.xls')
    報錯不一樣哦:
    伺服器: 訊息 7399,層級 16,狀態 1,行 1
    OLE DB Provider 'MSDASQL' 報告了錯誤。 
    [OLE/DB provider returned message: [Microsoft][ODBC 驅動程式管理員] 找不到資料來源名稱且未指定預設的驅動程式]
    OLE DB 錯誤追蹤 [OLE/DB Provider 'MSDASQL' IDBInitialize::Initialize returned 0x80004005:   ]。
      

  11.   

    你的是excel不是txt或者csv啊,excel这样
    select * from openrowset('microsoft.jet.oledb.4.0','excel 8.0;database=E:\LA\test.xls',sheet1$)
      

  12.   

    你把*.csv改个*.xls有什么用,这个引擎驱动是要在系统中有的才行,哪能随便改啊
      

  13.   

    我用excel報錯:
    伺服器: 訊息 213,層級 16,狀態 5,行 3
    插入錯誤: 資料行名稱或提供的數值數量與資料表定義不相符。
      

  14.   

    我想請問一下,table CsvTest上的列值需要自己建,還是只要excel上有列名就可以了?
      

  15.   

    自已建,但列数要与excel上的列数目一样,名称不一样无所谓