在SP里无法删除远程DB的数据

m_halfman 2011-11-10 10:19:32
代码如下:

SET @deletesqlStr=' DELETE a FROM ['+@HostAddress+'].db1.dbo.T1 a '
+' , db2..T2 b '
+' where a.F1 = b. F1 '
+' and a.F2 = b.F2 '
+' and a.F3 = b.F3 '
+' and a.F4 = b.F4 '
+' and a.F5 = b.F5 '
+' and a.F6 = b.F6 '
EXEC(@deletesqlStr)

SELECT @ResultCode = @@ERROR
IF @ResultCode <> 0 GOTO END_PROC1

代码正常执行,@ResultCode为0,无错误。
在HostAddress那台机器上也监视过了,这句代码确实执行了,但是数据没有被删掉。

奇怪的是,如果不是在SP里,而是在查询分析器里单独执行这段,数据就能够被删掉。
...全文
111 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
AcHerat 2011-11-10
  • 打赏
  • 举报
回复
难道依旧是分布式事务的问题?都启动下MSDTC服务看看?
m_halfman 2011-11-10
  • 打赏
  • 举报
回复
已做好链接服务器,否则执行就会报错。

为了排错,已经把SP的其它代码都删掉了,只剩下插入和删除。

插入代码如下,
EXEC( 'INSERT INTO db2..T2 SELECT DISTINCT * FROM ['+@HostAddress+'].db1.dbo.T1')
执行后@@ERROR=0,@@rowcount>0,但是数据没有插进去。

直接在查询分析器里单独执行,数据能够被插入和删掉。
geniuswjt 2011-11-10
  • 打赏
  • 举报
回复
SP貌似是stored procedure
Mr_Nice 2011-11-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 fredrickhu 的回复:]

把存储过程贴全一点看看。
[/Quote]

给尽量全的语句
--小F-- 2011-11-10
  • 打赏
  • 举报
回复
把存储过程贴全一点看看。
AcHerat 2011-11-10
  • 打赏
  • 举报
回复
去做链接服务器,然后再删。
黄_瓜 2011-11-10
  • 打赏
  • 举报
回复
不知道什么是sp ,帮顶

22,209

社区成员

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

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