我对使用不带Exec关键字运行时存在不同行为的存储过程感到困惑。
我有2台服务器,服务器1:
Microsoft SQL Server 2008 R2(RTM) - 10.50.1600.1(X64)2010年4月2日15:48:46版权所有(c)Microsoft Corporation在Windows NT 6.0上的标准版(64位)(Build 6002:Service Pack 2)(Hypervisor )
服务器2:
Microsoft SQL Server 2008(SP2) - 10.0.4000.0(X64)2010年9月16日19:43:16版权所有(c)1988-2008 Windows NT 6.1上的Microsoft Corporation标准版(64位)(Build 7601:Service Pack 1) (VM)
服务器1中的存储过程(ACTUALIZA_MANTE_FULL),用于从服务器1中的表中删除数据到服务器2中的表。
当我跑步" EXEC ACTUALIZA_MANTE_FULL"该过程不返回任何错误,但目标表没有行
当我跑" ACTUALIZA_MANTE_FULL" (没有EXEC)过程运行没有错误,数据插入正确。
为什么差异?,我错过了什么?
编辑:程序伪代码(抱歉无法输入实际代码)
CREATE PROCEDURE MIPROC<br>
AS <br>
declare @from datetime<br>
set @from = getdate()-30<br>
<br>
delete from [ADMSRV].remotedb.dbo.remoteTable where t_date >= @from<br>
<br>
Insert into [ADMSRV].remotedb.dbo.remoteTable <br>
Select fields, sum(datum) as datum<br>
form localdb.dbo.localtable1<br>
where ld_date >= @from<br>
group by ields <br>
union <br>
Select fields, sum(datum) as data<br>
form localdb2.dbo.localtable2<br>
where ld_date >= @from<br>
group by fields<br>
GO<br>
(fields)中的字段是相同的cuantity,以及remoteTable中的PK类型
远程表只有PK,没有FK,没有唯一约束,没有唯一索引或触发器。