每天定时(比如9:00)将指定目录下的一个文本文件(该文件名以昨天日期命名,如今天是20090226,文件名就是20090225.txt)导入到数据库中的某个指定的表中?

解决方案 »

  1.   

    --创建一个存储过程CREATE PROC p
        @tbname sysname,
        @Path NVARCHAR(256)
    AS
        EXEC('
            BULK INSERT '+@tbname+'
                FROM '''+@Path+CONVERT(VARCHAR(8),GETDATE()-1,112)+'.txt''
            WITH
            (
               FIELDTERMINATOR='',''
            )
        ')
    GO----------------------------
    定时作业的制定  企业管理器   
    --管理   
    --SQL Server代理   
    --右键作业   
    --新建作业   
    --"常规"项中输入作业名称   
    --"步骤"项   
    --新建   
    --"步骤名"中输入步骤名   
    --"类型"中选择"Transact-SQL 脚本(TSQL)"   
    --"数据库"选择执行命令的数据库   
    --"命令"中输入要执行的语句:   
                           EXEC 存储过程名 ... --该存储过程用于创建表   --确定   
    --"调度"项   
    --新建调度   
    --"名称"中输入调度名称   
    --"调度类型"中选择你的作业执行安排   
    --如果选择"反复出现"   
    --点"更改"来设置你的时间安排    
    然后将SQL Agent服务启动,并设置为自动启动,否则你的作业不会被执行   设置方法:   
    我的电脑--控制面板--管理工具--服务--右键 SQLSERVERAGENT--属性--启动类型--选择"自动启动"--确定.  
      

  2.   

    存储过程提示:在关键字convert附近有语法错误
      

  3.   

    CREATE PROC p
        @tbname sysname,
        @Path NVARCHAR(256)
    AS
    declare @temp datetime
    set @temp = CONVERT(VARCHAR(8),GETDATE()-1,112)
        EXEC('
            BULK INSERT '+@tbname+'
                FROM '''+@Path + @temp +  '.txt''
            WITH
            (
               FIELDTERMINATOR='',''
            )
        ')
    GO
      

  4.   

    系统提示:
    大容量插入失败.数据文件中第1行、第9列的列太长,请确保正确地指定了字段终止符和行终止符是不是该文本是unix格式的文本有关?第9列就是最后一列