我们有两个简单的查询(内部存储过程,由网站使用):
if @a = 1
begin
select a.col1, a.col2 , b.col1 from table1 a join table2 b
on a.id = b.id
where a.col1 = 'yyyy'
end
else
begin
select a.col1, a.col2 , b.col1 from table1 a join table2 b
on a.id = b.id
where a.col1 = 'zzzz'
end
第一次查询(@a = 1)永远不会出现问题。第二个应该返回48行(表不经常写)。每天一次或两次(数百次点击)第二次查询返回10或30行(调试我将@@ rowcount插入另一个表)。所以强迫它给我48行,我试过这样的事情:
else
again:
begin
select a.col1, a.col2 , b.col1 from table1 a join table2 b
on a.id = b.id
where a.col1 = 'zzzz'
if @@rowcount <> 48 goto again
end
, 它会保持循环几分钟(永远不会返回48行),直到我杀死spid。
任何想法都会有所帮助。 感谢
答案 0 :(得分:0)
如果您返回10或30,则该组合将永远不会是48。
将其更改为:
if @@rowcount >= 48 goto again
尽管如此,我相信你的工作并没有多大意义。
你第二次选择真的有48行吗?