"a  ",  "b  ",  "c  ",  "d  ",  "e  "  
00001,  7398,MICROSOFT  PRESS  SPECIAL,49.99,  0-7356-0652-8    
00002,  7832,  MICROSOFT  -  WWF                ,  45.63,  0-4562-0582-5  
00003,  5643,  MICROSOFT  -  WWF                ,  21.5  ,  0-5545-0457-7  
用SELECT  *  FROM  OPENROWSET('MSDASQL.1','Driver={Microsoft  Text  Driver  (*.txt;  *.csv)};Dbq=e:\','select  *  from  a.txt')  导入到sql  
 
用INSERT  INTO  table1(a,b,c,d)  SELECT  *  FROM  OPENROWSET('MSDASQL.1','Driver={Microsoft  Text  Driver  (*.txt;  *.csv)};Dbq=e:\','select  *  from  a.txt')

解决方案 »

  1.   

    --------------以下是从SQL SERVER帮助拷贝的帮助------------------H. 使用用于 Jet 的 Microsoft OLE DB 提供程序访问文本文件
    此示例创建一台直接访问文本文件的链接服务器,而没有将这些文件链接为 Access .mdb 文件中的表。提供程序是 Microsoft.Jet.OLEDB.4.0,提供程序字符串为"Text"。数据源是包含文本文件的目录的完整路径名。schema.ini 文件(描述文本文件的结构)必须与此文本文件存在于相同的目录中。有关创建 schema.ini 文件的更多信息,请参见 Jet 数据库引擎文档。--Create a linked server
    EXEC sp_addlinkedserver txtsrv, 'Jet 4.0', 
       'Microsoft.Jet.OLEDB.4.0',
       'c:\data\distqry',
       NULL,
       'Text'
    GO--Set up login mappings
    EXEC sp_addlinkedsrvlogin txtsrv, FALSE, Admin, NULL
    GO--List the tables in the linked server
    EXEC sp_tables_ex txtsrv
    GO--Query one of the tables: file1#txt
    --using a 4-part name 
    SELECT * 
    FROM txtsrv...[file1#txt]
      

  2.   

    转贴:DECLARE @object int
    DECLARE @hr int
    DECLARE @src varchar(255), @desc varchar(255)
    Declare @tmp int
    declare @msg varchar(3000)SET @msg='Hello. MS SQL Server 2000. I Love you!!!'   --這字串將會被寫到SQL Server的安裝目錄下的Nipsan.Txt文件里面/*  取得SQL Server的安裝路徑*/
    declare @strPath  nvarchar(512)
    Exec sp_MSGet_Setup_paths @strPath OUTPUT
    Set @strPath=@strPath+'\Nipsan.Txt'   --組成文件名
     --創建Scripting組件實例
    EXEC @hr = sp_OACreate 'Scripting.FileSystemObject', @object OUT
    IF @hr <> 0
    BEGIN
       EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT 
       SELECT hr=convert(varbinary(4),@hr), Source=@src, Description=@desc
        RETURN
    END--創建文件
    EXEC @hr = sp_OAMethod @object, 'CreateTextFile', @tmp OUTPUT , @strPath
    IF @hr <> 0
    BEGIN
       EXEC sp_OAGetErrorInfo @object
        RETURN
    END
    --把@msg寫到文件里面去
    EXEC @hr = sp_OAMethod @tmp, 'Write',NULL, @msg
    IF @hr <> 0
    BEGIN
       EXEC sp_OAGetErrorInfo @object
        RETURN
    END
    --關閉文件
    EXEC @hr = sp_OAMethod @tmp, 'Close',NULL
    IF @hr <> 0
    BEGIN
       EXEC sp_OAGetErrorInfo @object
        RETURN
    END
    -----------寫文件操作Demo完成-----------------------------------------------------------------打開文件
    EXEC @hr = sp_OAMethod @object, 'OpenTextFile', @tmp OUTPUT ,@strPath
    IF @hr <> 0
    BEGIN
       EXEC sp_OAGetErrorInfo @object
        RETURN
    ENDSET @msg=''
    --讀文件
    EXEC @hr = sp_OAMethod @tmp, 'Read', @msg OUT,3000
    IF @hr <> 0
    BEGIN
       EXEC sp_OAGetErrorInfo @object
        RETURN
    END
    -----讀文件操作Demo完成
    SELECT @msg AS RESULT
      

  3.   

    看不大懂,我的问的是:我是用ASP.NET写程序的,相应的用ADO.NET,上面的语句适用吗?
      

  4.   

    INSERT  INTO  table1(a,b,c,d)  SELECT  *  FROM  OPENROWSET('MSDASQL.1','Driver={Microsoft  Text  Driver  (*.txt;  *.csv)};Dbq=e:\','select  *  from  a.txt')
    这是从文本文件 a.txt中取得数据导入tabel1中是吗?那么
    SELECT  *  FROM  OPENROWSET('MSDASQL.1','Driver={Microsoft  Text  Driver  (*.txt;  *.csv)};Dbq=e:\','select  *  from  a.txt')
    是什么意思?OPENROWSET 代表什么??
      

  5.   

    我的用是存储过程,只能写数据库服务器上的文本文件。
    openrewset是分布式查询语句!
      

  6.   

    谢谢大力,可是我运行上面的语句抱错:
    服务器: 消息 7399,级别 16,状态 1,行 1
    OLE DB 提供程序 'MSDASQL.1' 报错。 
    [OLE/DB provider returned message: [Microsoft][ODBC 驱动程序 管理器] 未发现数据源名称并且未指定默认驱动程序]什么数据源名称,这用到数据源了吗?
      

  7.   

    用bcp 语句
    winexec "bcp db.dbo.table -out|in 'd:\1.txt' -c -t'#' -Usa -P"
    其中 out 和in分别指导入和导出, 指定路径和用户名、密码
      

  8.   

    bcp 可以实现数据的导入导出。
    EXEC master..xp_cmdshell 'bcp test.dbo.P_Aspect in c:\temp1.txt -c -q -S"servername" -U"sa" -P""'
    //导入 EXEC master..xp_cmdshell 'bcp test.dbo.P_Aspect out c:\temp1.txt -c -q -S"servername" -U"sa" -P""'
    //导出BULK INSERT yourdb.dbo.ttt
       FROM 'c:\temp1.txt'
       WITH 
          (
             FIELDTERMINATOR = ',',
             ROWTERMINATOR = '\n'
          )
    goselect * from ttt
      

  9.   

    谢谢大力,
    EXEC master..xp_cmdshell 'bcp test.dbo.P_Aspect in c:\temp1.txt -c -q -S"servername" -U"sa" -P""'
    这个从数据库导入文本我已测试成功了。
    可是从文本导入数据库我怎么执行不成功?
      

  10.   

    用数据库的导出工具试一下,可以选择输出格式为text file 即是文本格式。
      

  11.   

    用DTS(sql的导入导出工具吧!)