DF024: The local cursor variable is not explicitly deallocated.

Last modified: May 28, 2025

The topic describes the DF024 T-SQL code analysis rule.

Category

BEST PRACTICE

Message

The local cursor variable is not explicitly deallocated.

Description

It is recommended to explicitly deallocate the local cursor variable after it is no longer needed using the DEALLOCATE statement.

Additional information

Failing to deallocate cursors can lead to resource leakage and potential performance issues, as the database engine continues to allocate memory for the cursor until it is explicitly deallocated.

Noncompliant code example

DECLARE cur CURSOR LOCAL FOR
SELECT CustomerID FROM dbo.Customer
FETCH NEXT FROM cur INTO @CustomerId

Compliant solution

DECLARE cur CURSOR LOCAL FORWARD_ONLY FOR
SELECT CustomerID FROM dbo.Customer
OPEN cur
FETCH NEXT FROM cur INTO @CustomerId
DEALLOCATE cur