问题产生:
DTS建好后,运行-->成功导入数据,这个DTS包导数据的作业是系统自动建立的,
因为在建DTS包的时候设置了调度时间,所以系统自动创建了该作业,但明明运行DTS成功了,
在管理-->Sqlserver代理-->作业里显示失败,而且手动执行作业,也同样失败。。。
产生原因:
手动运行DTS包时的帐户为你操作数据库的当前帐户,在作业里运行DTS包时,依赖于sqlserveragent服务,会受到sqlserveragent服务的帐户设置影响.由于这两个帐户不同而导致了作业里自动运行DTS包时失败!
解决方案:
在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,然后就是确定,应用,确定了。
至此,问题解决,手动运行作业,成功!!!