select * from SQLSRV.MMDATAForChengDu.dbo.[EPOFIL] Msg 7314, Level 16, State 1, Line 1
链接服务器 "SQLSRV" 的 OLE DB 访问接口 "SQLNCLI" 不包含表 ""MMDATAForChengDu"."dbo"."EPOFIL""。该表不存在,或者当前用户没有访问该表的权限。
打开SQLSRV.MMDATAForChengDu 是可以select from dbo.[EPOFIL]  的但跨库就不行。 有帐号和密码。要在SQLSRV上怎么设置才行?

解决方案 »

  1.   

    添加用户,并设置为db_datareader角色
      

  2.   

    这个需要创建链接服务,然后才可以这样访问不同服务器数据库之间的数据操作--创建链接服务器 
    exec sp_addlinkedserver 'ITSV' , '' , 'SQLOLEDB' , '远程服务器名或ip地址' 
    exec sp_addlinkedsrvlogin 'ITSV' , 'false' , null , '用户名' , '密码' --查询示例 
    select * from ITSV.数据库名.dbo.表名 --导入示例 
    select * into 表 from ITSV.数据库名.dbo.表名 --以后不再使用时删除链接服务器 
    exec sp_dropserver 'ITSV' , 'droplogins' --连接远程/局域网数据(openrowset/openquery/opendatasource) 
    --1、openrowset --查询示例 
    select * from openrowset('SQLOLEDB' , 'sql服务器名' ; '用户名' ; '密码' , 数据库名.dbo.表名) --生成本地表 
    select * into 表 from openrowset('SQLOLEDB' , 'sql服务器名' ; '用户名' ; '密码' , 数据库名.dbo.表名) 
      

  3.   

    SQL2008和SQL2000可以跨服务器连接查询的测试实例
    http://blog.csdn.net/claro/archive/2010/07/03/5710808.aspx
      

  4.   

    USE master;
    GO
    EXEC sp_addlinkedserver 'servername', N'SQL Server'
    GOUSE [master]
    GO
    EXEC master.dbo.sp_serveroption @server=N'servername', @optname=N'data access', @optvalue=N'true'
    GOUSE [master]
    GO
    EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'servername', @locallogin = NULL , @useself = N'False', @rmtuser = N'dba', @rmtpassword = N'dbapwd'
    GO
    以上的语句你执行了吗?另外你的连接账户是SA吗如果是不会存在以上问题另外