通过链接服务器truncate其它服务器里的一个表,突然报错“因为它不存在或者您没有所需的权限”

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

sql2005企业版,搜了一下也没见到类似的情况

作者: sz_haitao   发布时间: 2011-06-15

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

作者: zy112429   发布时间: 2011-06-15

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

作者: zy112429   发布时间: 2011-06-15

在远程服务器建一个存储过程,执行truncate那个表
再由定时处理通过链接服务器来执行这个存储过程,倒是一切正常
也算是绕开了这个怪事

但是问题的原因还是不知道。。。。。。。。。。


顺便推销一个自己写的数据字典工具:
  MS SQL Server支持表、字段的备注说明,只是没有好的工具来维护和查看。
  使用PowerDesiner之类的工具,又实在太庞大臃肿了。
  而且,还需要对项目、应用本身做一些附加说明(如需求背景、框架、设计经过)。
  可以快捷关联多对多信息表。
  直接查看表、视图的字段信息,已经前20条记录的内容(如果有id字段,则查看前10条及后10条记录),查看函数、存储过程的具体代码。
绿色软件,就一个exe
把一个项目常用的表、视图、存储过程列在一起,找起来非常方便
http://www.newhua.com/soft/115433.htm

作者: sz_haitao   发布时间: 2011-06-15

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

作者: cd731107   发布时间: 2011-06-15

帐号、权限都查过,没问题的
至少select都可以。。。。。。后来改为存储过程,也可以了

1楼说的 1:通过链接服务器不能删除链接源服务器的任何对像. 
我的程序是从2010-02-23把delete表改为truncate表的
不过,看日志,好像都是delete。。。。。。。。。只有最近几天才使用truncate的,奇怪。。。。。

另外,通过远程的存储过程就可以,也是奇怪

作者: sz_haitao   发布时间: 2011-06-15

引用 5 楼 sz_haitao 的回复:
帐号、权限都查过,没问题的
至少select都可以。。。。。。后来改为存储过程,也可以了

1楼说的 1:通过链接服务器不能删除链接源服务器的任何对像.
我的程序是从2010-02-23把delete表改为truncate表的
不过,看日志,好像都是delete。。。。。。。。。只有最近几天才使用truncate的,奇怪。。。。。

另外,通过远程的存储过程就可以,也是奇怪
2楼解释过了

作者: zy112429   发布时间: 2011-06-15

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

作者: sz_haitao   发布时间: 2011-06-15

我是来看3楼工具的 你的问题我先测试下再说 没遇见过

作者: fredrickhu   发布时间: 2011-06-15