2010-09-17 57 views
5

我使用游标因而具有SQL服务器SP处理之前然后继续处理。 如果有@@ var我可以用来检查这个吗? 我知道有@@行数 - 但这只有处理的行目前一些 - 所以是不是非常有帮助计数行与游标TSQL

我非常希望能够做这样的事情:

if @@cursorQueryHasRecords 
BEGIN 
WHILE @@FETCH_STATUS = 0 
BEGIN 
...etc 

感谢

NAT

+6

,为什么你不能使用@@ FETCH_STATUS本身? – Arvo 2010-09-17 11:13:46

+0

你真的需要一个游标,他们往往是最糟糕的选择。 http://wiki.lessthandot.com/index.php/Cursors_and_How_to_Avoid_Them – HLGEM 2010-09-17 13:26:13

回答

4
if exists(
    SELECT 
     tblHSOutcomes.strOutcomeName, 
     tblHSData.fkHSTest 
    FROM 
     tblHSData 
     INNER JOIN tblHSOutcomes ON tblHSData.fkOutcome = tblHSOutcomes.uidOutcome 
     INNER JOIN tblHSTests ON tblHSData.fkHSTest = tblHSTests.uidTest 
    WHERE 
     tblHSData.fkEpisode = @uidHSEpisodes 
) 
... 
+0

嗨,感谢您的回复。如何在光标位包装..不想要运行该查询两次.. 大概我不能做 Decalre testcursor光标 如果存在(选择.... – nat 2010-09-17 11:09:40