问题产生:
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,然后就是确定,应用,确定了。
至此,问题解决,手动运行作业,成功!!!
本文介绍了解决DTS包自动运行失败的问题。当DTS包通过SQL Server Agent自动执行时,可能会因为运行账户的不同而失败。文章提供了一种解决方案,通过调整作业配置和使用特定的SQL命令来解决问题。
539





