Sql 从另一台服务器调用时,存储过程返回不同的结果

Sql 从另一台服务器调用时,存储过程返回不同的结果,sql,sql-server,stored-procedures,sql-server-2012,Sql,Sql Server,Stored Procedures,Sql Server 2012,我在Server1中创建了一个存储过程,它返回正确的结果 然后在Server2上,我只是通过链接服务器执行Server1存储过程 首先,Server2上的返回结果与Server1相同 但在1或2天后,Server2会在某些数据中返回一些空值。但是Server1仍然返回正确的结果 结果服务器1: Id Name Location Age 1 Alex USA 20 2 Bob UK 23 3 Davi

我在Server1中创建了一个存储过程,它返回正确的结果 然后在Server2上,我只是通过链接服务器执行Server1存储过程

首先,Server2上的返回结果与Server1相同

但在1或2天后,Server2会在某些数据中返回一些空值。但是Server1仍然返回正确的结果

结果服务器1:

Id  Name       Location     Age
1   Alex       USA          20
2   Bob        UK           23
3   David      JP           25
4   Don        UK           24
Seq Name       Location     Category
1   Bob        UK           20
2   Bob        UK           23
结果服务器2:

Id  Name       Location     Age
1   Alex       USA          20
2   Bob        NULL         NULL
3   David      NULL         NULL
4   Don        UK           24
Seq Name       Location     Category
1   Bob        UK           23
2   Bob        UK           20
我只能通过重新编译Server1存储过程暂时解决这个问题。 服务器2将得到正确的结果,但2天后,同样的问题再次出现

20190920更新。。。。。包括存储过程查询的示例

仅供参考:这些列CASE语句中会出现一些null值

所有这些,。。。是输入 @输出被声明为表。 上面的@Output表中有很多insert语句 从中选择* 选择tbla.SiteName、tbla.FromWorkCenter、tbla.Category、tbla.MaterialName、tbla.OperSeq ,tbla.FromOperSeq,tbla.StepIndex,tbla.FromStepIndex,SUMtbla.CFqty 从…起 选择tbl.SiteName 案例 当tbl.RouteName类似于“%REWORK%”时,则为“PS-”+tbl.ToWorkCenter 当isnulltbl.FromWorkCenter时,'WRH'='WRH'然后 选择“TWH”时的案例源,然后选择“TWH”,然后选择“LWH”,然后选择“LWH”,否则选择“WRH”结束作为源 来自DIM_物料ddm,其中ddm.MaterialName=tbl.MaterialName 和ddm.mainContegory_wk=从DIM_Category dc中选择前1个dc.key_wk,其中dc.Category=TBL.Category else“PS-”+dw.WorkCenterName结束于FromWorkCenter ,类别,待定材料名称,待定路线名称 ,当“0”时,案例tbl.OperSeq,然后是“10”,否则tbl.OperSeq结束为OperSeq ,当“0”时为rsd2.OperSeq,然后为“10”,否则rsd2.OperSeq结束于OperSeq ,当rsd.RouteName类似“%REWORK%”时,则为 从尺寸材料a中选择顶部1 c.StepIndex 在a上连接尺寸材料结构b。键=b。材料 在b.RouteName=c.RouteName和c.OperSeq=tbl.OperSeq和OperSeqFlag='TRUE'上加入DIM_RouteDetail c 在b.AUDIT\u id=d.AUDIT\u id和d.post\u end\u dt上加入AUDIT\u作业d我发现了问题。 结果表明,当从本地和远程查询时,数据序列是不同的

结果服务器1:

Id  Name       Location     Age
1   Alex       USA          20
2   Bob        UK           23
3   David      JP           25
4   Don        UK           24
Seq Name       Location     Category
1   Bob        UK           20
2   Bob        UK           23
结果服务器2:

Id  Name       Location     Age
1   Alex       USA          20
2   Bob        NULL         NULL
3   David      NULL         NULL
4   Don        UK           24
Seq Name       Location     Category
1   Bob        UK           23
2   Bob        UK           20

因此,当筛选某些数据时,由于结果为null而未正确连接时,您可以发布存储过程吗?您能告诉我们:a。@Date赋值,以及b@输出查询?我假设@Company和@Site是SP的输入。@Date也是输入吗?所有的@。。。是输入,@output被声明为表。简单问一下,这个表有聚集索引吗?