Microsoft KB Archive/249628

From BetaArchive Wiki
Knowledge Base

BUG: Dynamic Cursor Inside a Stored Procedure Using ISNULL() or Date Function May Cause AV

Article ID: 249628

Article Last Modified on 10/3/2003


  • Microsoft SQL Server 6.5 Standard Edition

This article was previously published under Q249628

BUG #: 17695 (SQLBUG_65)


If a dynamic SELECT cursor is created using the ISNULL() function or a date function, it results in an access violation (AV) when executed. For the access violation to occur, the following conditions must be met:

  • Cursor must be used inside a stored procedure.
  • A Clustered index must exist on the field that is involved with the function.
  • The returned column is used in an ORDER BY clause. For example:

    declare c1 cursor
        select Field1, ISNULL(Field2, 123456) As FieldX
        from tblTest
        order by FieldX

The problem occurs on all builds of SQL Server 6.5, from release to Service Pack 5a. It does not occur in SQL Server 7.0.


Declaring the cursor as INSENSITIVE prevents the access violation from occurring.


Microsoft has confirmed this to be a problem in SQL Server 6.5.

Keywords: kbbug kbpending KB249628