小弟现在遇到一个问题, 就是在两台电脑上, 有两个MSSQL的服务器,分别为A, B  现在需要做一个作业,把A中的表tableA 中的数据,插入到B数据库中的 tableB中,已在B中做了连接服务器, 现在在B中做了个存储过程:create proc sp_synchronization2
as 
begin tran         insert into tableB(hrcode ,hrname)   -- delete from hrgeneral_test
select employee_no,employee_name
from xh02.xfhr.dbo.tableA
where isnull(replyn,0)=0commit tran在查询分析器中执行是没有问题, 但建立作业,运行作业后提示:作业失败。  用户 sa 唤醒调用了该作业。最后运行的步骤是第 1 步

解决方案 »

  1.   

    --> trycreate proc sp_synchronization2
    asSET XACT_ABORT ONBEGIN DISTRIBUTED TRANSACTION        insert into tableB(hrcode ,hrname)  -- delete from hrgeneral_test
    select employee_no,employee_name
    from xh02.xfhr.dbo.tableA
    where isnull(replyn,0)=0commit tranSET XACT_ABORT OFF
      

  2.   

    将Job的所有者改为Adminsitrator试试,这个问题我以前碰到过,一下子不记得怎么解决了。
      

  3.   

    大哥, 请问你的QQ或者MSN是什么呢? 
      

  4.   

    作业失败。  无法确定所有者(XH01\Administrator,拥有作业 wushilin_test)是否有访问服务器的权限(原因: 未能获得有关 Windows NT 组/用户 'XH01\Administrator' 的信息。 [SQLSTATE 42000](错误 8198)).
      

  5.   

    哎。。暂时我先用着trigger来解决住先!
      

  6.   

    sql agent账户必须能够访问你第二台机器,
    如果是本地账户或者是Network Service之类的本地权限账户启动的sql agent调用job,
    是无法在B机器上获得读取数据的权限的.
    建议修改成一个域帐户,并且这个域帐户可以访问相应的数据库资源.
    -----------------------------------------------
     
      

  7.   

    建议步骤:
    1.在B机器上检查SQL Agent服务的启动账户.
     run --> services.msc --> SQL Server Agent (MSSQLSERVER) -->
    如果在log on页的账户是Local System Account 或者 NT AUTHORITY\NetworkService 等帐户,
    修改成一个 domain\youraccount 之类的域帐户,2. 在A机上将domain\youraccount 账户添加到sql server数据库的访问组.3. 在B机上通过Job调用SP再试试.
      

  8.   

    就是在sql server里面添加该域帐户的访问权限.