如题,我建了个DTS包导数据成功了,可在作业里显示作业失败了。怎么回事?????????
请高手指点!!!!!

解决方案 »

  1.   

    你通过DTS导书的表里面有数据没?
      

  2.   

    补充下,DTS建好后,运行-->成功导入数据,这个DTS包导数据的作业是系统自动建立的,
    因为我在建DTS包的时候设置了调度时间,所以系统自动创建了该作业,但明明运行DTS成功了,但
    管理-->Sqlserver代理-->作业 里显示作业失败。
    高手指点下
      

  3.   

    DTS的设计器功能强大,支持多任务,也是可视化界面,易于操作,但熟悉的人一般不多,如果只是进行SQL Server数据库中部分表的移动,用这种方法最好,当然,也可以进行全部表的移动。在SQL Server Enterprise Manager中,展开服务器左边的+,选择数据库,右击,选择All tasks/Import Data...(或All tasks/Export Data...),进入向导模式,然后按照提示一步一步进行就可以了,里面分得非常详细,可以灵活的在不同数据源之间复制数据,非常的方便,而且还可以另存成DTS包,如果以后还有相同的复制任务,直接运行DTS包就行,省时省力。也可以直接打开DTS设计器,方法是展开服务器名称下面的Data Transformation Services,选Local Packages,在右边的窗口中右击,选New Package,就打开了DTS设计器。值得注意的是:如果源数据库要拷贝的表有外键,注意移动的顺序,有时要分批移动,否则外键主键,索引可能丢失,移动的时候选项旁边的提示说的很明白,或者一次性的复制到目标数据库中,再重新建立外键,主键,索引。其实在建立数据库时,建立外键,主键,索引的文件应该和建表文件分开,而且用的数据文件也分开,并分别放在不同的驱动器上,有利于数据库的优化。
    看了下网站上的,说是索引或主键,外键会丢失呀,作业也会失败?????
      

  4.   

    回SQL77,试过了建立相同作业,还是不行
    回小F,我导入了4072条数据
      

  5.   

    具体情况具体分析
    比如DTS中如果你设置了错误忽略(比如设定条件错误积累<10,那么如果错误资料<10条,将忽略错误),这个时候dts还是可以将资料导入,但是回报的是fail.参考: 可以在dts主要步骤最后,加入一个Active Script Task, 让其回报success。p.s. 一般dts回传有2个参数 
       DTSTaskExecResult_Success
      DTSTaskExecResult_Failure
      

  6.   

    经本人反复测试,问题终于解决。过程如下,希望对遇到同样问题的朋友有所帮助。1 问题产生原因:手动运行DTS包时的帐户为你操作数据库的当前帐户
    在作业里运行DTS包时,依赖于sqlserveragent服务,会受到sqlserver agent服务的帐户设置影响.
    由于这两个帐户不同而导致了作业里自动运行DTS包时失败!
    (尝试过把sqlserver agent里的登陆帐户设为administrator时,发生启动sqlserver agent失败,无法登陆)2 解决方案:
    在sqlserver  管理-->Sql Server代理-->作业 中选中失败的作业,右键-->属性-->步骤
    看到你的DTS包后(包名即步骤名),点下面的编辑
    在 "常规" 里面 "类型" 下拉条中选中 Transact-SQL脚本(TSQL)
    在 "数据库(D)" 下拉条中选中 master
    在 "命令(M)" 文本框中输入语句:
    master..xp_cmdshell 'dtsrun /s 192.168.163.130 /u sa /p hahaha /n testDTS'
    192.168.163.130为DTS包所保存的位置,sa 为用户名,hahaha为密码,testDTS为DTS包的包名然后点上面 "常规" 旁边的 "高级",在下面 "作为用户运行(E)" 中选择dbo,
    OK,然后就是确定,应用,确定了。再次手动运行下作业,成功了,哈哈哈!!!