LinkServer数据库,执行删除语句会报错

cynthiabx 2009-04-07 05:46:52
执行下列删除语句会报错

DELETE FROM [RemotServer].[DBName].dbo.Table1
WHERE Stdwno IN
(
SELECT EMP_NO
FROM #TEMP1
)

错误信息如下:
OLE DB provider "SQLNCLI" for linked server "RemotServer" returned message "Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.".
Msg 16955, Level 16, State 2, Line 1
Could not create an acceptable cursor.
当前登录身份对于该数据库是绝对有权限的(管理员)
另外,如果相同的语句,我执行select语句就不会报错,如

SELECT * FROM [RemotServer].[DBName].dbo.Table1
WHERE Stdwno IN
(
SELECT EMP_NO
FROM #TEMP1
)

但是我删除另一个表,就不会报错

DELETE FROM [RemotServer].[DBName].dbo.Table2
WHERE Stdwno IN
(
SELECT EMP_NO
FROM #TEMP1
)

实在不知道是什么原因了,还请各位大侠指教呀。
...全文
151 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cynthiabx 2009-04-24
  • 打赏
  • 举报
回复
正确答案是用LinkServer去删除数据库中数据时,对方表必须有primay Key或Index,否则就会报错。
ks_reny 2009-04-08
  • 打赏
  • 举报
回复

DELETE [RemotServer].[DBName].dbo.Table1
WHERE Stdwno IN
(
SELECT EMP_NO
FROM #TEMP1
)
去掉from 試試.
Zoezs 2009-04-08
  • 打赏
  • 举报
回复
看看值删除一条有没有问题.
cynthiabx 2009-04-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 sdhdy 的回复:]
看看那个表是不是有触发器在作怪!
[/Quote]
报错的表,没有触发器
petunsecn 2009-04-07
  • 打赏
  • 举报
回复
同意2楼,看看触发器或者约束,表之间是不是有级联删除的情况
cynthiabx 2009-04-07
  • 打赏
  • 举报
回复
table1是有Stdwno这个栏位的
sdhdy 2009-04-07
  • 打赏
  • 举报
回复
看看那个表是不是有触发器在作怪!
rucypli 2009-04-07
  • 打赏
  • 举报
回复
table1没有Stdwno这个字段?

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧