代码如下: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里,而是在查询分析器里单独执行这段,数据就能够被删掉。
+' , 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里,而是在查询分析器里单独执行这段,数据就能够被删掉。
EXEC( 'INSERT INTO db2..T2 SELECT DISTINCT * FROM ['+@HostAddress+'].db1.dbo.T1')
执行后@@ERROR=0,@@rowcount>0,但是数据没有插进去。直接在查询分析器里单独执行,数据能够被插入和删掉。