在login管理里面,
打开sa的属性,看看他在每个数据库中对应的user,看看该user有没有权限,一般情况下,sa在没个数据库中对应的都是dbo

解决方案 »

  1.   

    企业管理器;
    SECURITY;
    LOGINS;
    SA的属性
    DATABASE ACCESS
      

  2.   

    >企业管理器-安全性-用户,察看sa的属性,看看别的库有没有打上钩、已经打勾的,还是不行。我原先用的就是超级用户。
      

  3.   

    或使用联结服务器:
    EXEC sp_addlinkedserver 
       '别名', 
       '', 
       'MSDASQL',
       NULL,
       NULL,
       'DRIVER={SQL Server};SERVER=远程名;UID=用户;PWD=密码;'
    GO
    然后你就可以如下:
    select * from 别名.库名.dbo.表名
    insert 库名.dbo.表名 select * from 别名..库名.dbo.表名
    select * into 库名.dbo.新表名 from 别名..库名.dbo.表名
    go
      

  4.   

    先看看这个行吗???select * into 本地库名..表名 from OPENDATASOURCE(
             'SQLOLEDB',
             'Data Source=远程ip;User ID=sa;Password=密码'
             ).库名.dbo.表名insert 本地库名..表名 from OPENDATASOURCE(
             'SQLOLEDB',
             'Data Source=远程ip;User ID=sa;Password=密码'
             ).库名.dbo.表名
      

  5.   

    执行
    select * 
       from 
       OPENDATASOURCE('SQLOLEDB','Data Source=192.168.100.139;User ID=sa;Password=sa').pubs.dbo.sysobjects出错:服务器: 消息 3624,级别 18,状态 1,行 1
     
    服务器: 消息 170,级别 15,状态 1,行 1
    第 1 行: '9' 附近有语法错误。
    [OLE/DB provider returned message: 未指定的错误]
    Location:  colnames.cpp:4206
    Expression:  ptrCC
    SPID:  52
    Process ID:  1176
    Description:  Bad error handling downstream of PtrGetCmd!!
      

  6.   

    select * into DW..newtable 
       from 
       OPENDATASOURCE('SQLOLEDB','Data Source=192.168.100.139;User ID=sa;Password=sa').pubs.dbo.sysobjects也是错误信息:
    服务器: 消息 3624,级别 18,状态 1,行 1
     
    服务器: 消息 170,级别 15,状态 1,行 1
    第 1 行: '9' 附近有语法错误。
    [OLE/DB provider returned message: 未指定的错误]
    Location:  colnames.cpp:4206
    Expression:  ptrCC
    SPID:  52
    Process ID:  1176
    Description:  Bad error handling downstream of PtrGetCmd!!
      

  7.   

    select * 
       from 
       OPENDATASOURCE('SQLOLEDB','Data Source=你自己的ip;User ID=sa;Password=你自己的密码').pubs.dbo.sysobjects