USE [aspnetdb]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO
        ALTER PROCEDURE [dbo].[DeleteExpiredSessions]
        AS
            SET NOCOUNT ON
            SET DEADLOCK_PRIORITY LOW
            DECLARE @now datetime
            SET @now = GETUTCDATE()
            CREATE TABLE #tblExpiredSessions 
            ( 
                SessionID nvarchar(88) NOT NULL PRIMARY KEY
            )
            INSERT #tblExpiredSessions (SessionID)
                SELECT SessionID
                FROM [aspnetdb].dbo.ASPStateTempSessions WITH (READUNCOMMITTED)
                WHERE Expires < @now
            IF @@ROWCOUNT <> 0 
            BEGIN 
                DECLARE ExpiredSessionCursor CURSOR LOCAL FORWARD_ONLY READ_ONLY
                FOR SELECT SessionID FROM #tblExpiredSessions
                DECLARE @SessionID nvarchar(88)
                OPEN ExpiredSessionCursor
                FETCH NEXT FROM ExpiredSessionCursor INTO @SessionID
                WHILE @@FETCH_STATUS = 0 
                    BEGIN
                        DELETE FROM [aspnetdb].dbo.ASPStateTempSessions WHERE SessionID = @SessionID AND Expires < @now
                        FETCH NEXT FROM ExpiredSessionCursor INTO @SessionID
                    END
                CLOSE ExpiredSessionCursor
                DEALLOCATE ExpiredSessionCursor
            END
            DROP TABLE #tblExpiredSessions
        RETURN 0