Tôi có một SQL Server sp sử dụng một con trỏ như sau:hàng đếm trước khi xử lý với một TSQL con trỏ
DECLARE TestCursor CURSOR FOR
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
OPEN TestCursor
FETCH NEXT FROM TestCursor
INTO @Result, @TestID
WHILE @@FETCH_STATUS = 0
BEGIN
...etc
Đó là làm việc tốt, tuy nhiên nó sẽ được tốt đẹp để có thể kiểm tra xem các truy vấn con trỏ có bất cứ hồ sơ trước khi tiếp tục xử lý thông qua nó. nếu có @@ var mà tôi có thể sử dụng để kiểm tra điều này? Tôi biết có @@ ROWCOUNT - nhưng điều này chỉ có số lượng hiện tại của hàng được xử lý - vì vậy không phải là rất hữu ích
lý tưởng tôi muốn để có thể làm điều gì đó như thế này:
if @@cursorQueryHasRecords
BEGIN
WHILE @@FETCH_STATUS = 0
BEGIN
...etc
nhờ
nat
Và tại sao bạn không thể sử dụng @@ FETCH_STATUS bản thân? – Arvo
Và bạn có thực sự cần một con trỏ hay không, chúng thường là lựa chọn tồi tệ nhất. http://wiki.lessthandot.com/index.php/Cursors_and_How_to_Avoid_Them – HLGEM