一个每天定时执行的处理里,有一个通过链接服务器truncate其它服务器里的一个表的语句
一年多都执行的好好的,近几天突然都不行了:报错“因为它不存在或者您没有所需的权限”;通过链接服务器select这个表都是正常的。
链接服务器的对应远程帐号明明是有权限的,而且即使改为该机的sa+对应密码,也是一样:能select但不能truncate
在数据库的查询程序里也是这样
但是如果用这些帐号直接登录到远程服务器,是可以truncate的sql2005企业版,搜了一下也没见到类似的情况

解决方案 »

  1.   

    链接服务器有两个特点: 
       1:通过链接服务器不能删除链接源服务器的任何对像. 
       2:能过链接服务器可以对链接源服务器的表进行insert,updae,delete操作.
      

  2.   

    在远程服务器建一个存储过程,执行truncate那个表
    再由定时处理通过链接服务器来执行这个存储过程,倒是一切正常
    也算是绕开了这个怪事但是问题的原因还是不知道。
    顺便推销一个自己写的数据字典工具:
      MS SQL Server支持表、字段的备注说明,只是没有好的工具来维护和查看。
      使用PowerDesiner之类的工具,又实在太庞大臃肿了。
      而且,还需要对项目、应用本身做一些附加说明(如需求背景、框架、设计经过)。
      可以快捷关联多对多信息表。
      直接查看表、视图的字段信息,已经前20条记录的内容(如果有id字段,则查看前10条及后10条记录),查看函数、存储过程的具体代码。
    绿色软件,就一个exe
    把一个项目常用的表、视图、存储过程列在一起,找起来非常方便
    http://www.newhua.com/soft/115433.htm
      

  3.   

    是不是登录windows的帐号或sql的帐号被修改了,或者其权限被修改了
      

  4.   

    帐号、权限都查过,没问题的
    至少select都可以后来改为存储过程,也可以了1楼说的 1:通过链接服务器不能删除链接源服务器的任何对像. 
    我的程序是从2010-02-23把delete表改为truncate表的
    不过,看日志,好像都是delete只有最近几天才使用truncate的,奇怪。。另外,通过远程的存储过程就可以,也是奇怪
      

  5.   

    从服务器A通过链接服务器执行服务器B里的存储过程x,x里面有一个truncate B里一个表的语句
    这样间接删除就可以?
      

  6.   


    欢迎数据库高手试用
    感觉是会方便用户(自己就是第一个用户)
    2005的管理器可以直接编辑表的每一条记录,但是字段内容(cell)只能输入单行,不像2000支持多行
    有点想自己在这个工具里加入直接编辑表的功能。。
    2005的管理器很多地方都比2000退步了:最直接的就是界面响应速度