exec sp_addlinkedserver  @server='ITSV', @srvproduct='',@provider='SQLOLEDB',@datasrc='服务器名' 
exec sp_addlinkedsrvlogin  'ITSV', 'false',null, 'id', '密码' ......
create procedure [dbo].[dbo.up_rp_stat_3]
.....
{
 SELECT * FROM ITSV.flight.dbo.clientaccesslog
.....
}创建一个存储过程中使用链接服务器查询数据,但在创建时报错,消息 7314,级别 16,状态 1,过程 dbo.up_rp_stat_3,第 13 行
链接服务器 "ITSV" 的 OLE DB 访问接口 "SQLNCLI10" 不包含表 ""flight"."dbo"."clientaccesslog""。该表不存在,或者当前用户没有访问该表的权限。
求各位大虾帮帮忙,这个问题怎么解决呢?

解决方案 »

  1.   

    exec sp_addlinkedsrvlogin 'ITSV', 'false',null, 'id', '密码' 这个是什么用户
      

  2.   

    SQL不同服务器数据库之间的数据操作整理(完整版) 
      

  3.   

    'id'没有访问dbo的权限。
    处理方式:
    1、执行exec sp_addlinkedserver @server='ITSV', @srvproduct='',@provider='SQLOLEDB',@datasrc='服务器名'建立链接服务器即可。不用指定登录名。
    2、修改源数据库和目的数据库sa密码一致。详见SQL2008和SQL2000可以跨服务器连接查询的测试实例http://blog.csdn.net/claro/archive/2010/07/03/5710808.aspx
      

  4.   

    'id'没有访问dbo的权限。这个应该是不可能的,我用单独的语句查询时是可以查询的exec sp_addlinkedserver @server='ITSV', @srvproduct='',@provider='SQLOLEDB',@datasrc='服务器名'  
    exec sp_addlinkedsrvlogin 'ITSV', 'false',null, 'id', '密码'  select * from ITSV.flight.dbo.clientaccesslog这样是可以查询出来的
      

  5.   

    换ODBC方式,参考
    http://blog.csdn.net/xys_777/archive/2010/07/14/5733516.aspx
      

  6.   

    在查询界面用ID登录后,执行select * from ITSV.flight.dbo.clientaccesslog会有结果?????