how to release table variables

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • chinni0719
    New Member
    • Apr 2008
    • 18

    how to release table variables

    how to release table variables when work is done in cursor

    Declare @Querydeleted varchar(1000)
  • ck9663
    Recognized Expert Specialist
    • Jun 2007
    • 2878

    #2
    Originally posted by chinni0719
    how to release table variables when work is done in cursor

    Declare @Querydeleted varchar(1000)
    I don't think you can. It automatically goes out of scope once the sp/function terminates.

    Here are some good readings:

    Using the Table Data Type in SQL Server 2000

    INF: Frequently Asked Questions - SQL Server 2000 - Table Variable

    Temporary tables in SQL Server vs. table variables

    -- CK

    Comment

    • chinni0719
      New Member
      • Apr 2008
      • 18

      #3
      they said like "If you are using table variables in cursors, make sure you release them after the work is done"

      Declare @objectdelete1 varchar(200)
      Declare curiskeydeleted 1 cursor for (Select fieldname from dbo.SchemaField s where ClassID in (select ID
      from dbo.SchemaClass es as sc left outer join dbo.RuleDepende ncy as rd on rd.ObjectName = sc.classfqn
      where Rd.ruleID = @baseObject and sc.ClassStoreNa me not like 'base%' )And ISKey = 1)
      OPEN curiskeydeleted 1

      FETCH NEXT FROM curiskeydeleted 1 INTO @Objectdelete1
      WHILE (@@FETCH_STATUS = 0)
      BEGIN
      Declare @Querydeleted1 varchar(3000)
      select @querydeleted1= ''
      Select @querydeleted1 = 'Select ' + 'b.'+ @objectdelete1 + ' From '+ @testname + ' n Right Join ' + @testnamebase + ' b ' +
      'On' + Right(@WhereCla use1, Len(@WhereClaus e1) - 4) + ' Where'
      + Right(@Nullchec k, Len(@Nullcheck) - 4)

      Delete @TempTableSecon dary

      Insert Into @TempTableSecon dary (clmValue)
      execute (@querydeleted1 )
      --select * from @TempTableSecon dary

      Insert Into SPResultset (GroupId,Change Type , FieldName, FieldValue, fieldtype, ruleid,rulename )
      Select row_number( ) over(order by (select 0)), 'Deleted Record', @Objectdelete1, clmValue, 'KeyFields', @rule,@rulename From @TempTableSecon dary


      FETCH NEXT FROM curiskeydeleted 1 INTO @Objectdelete1
      END
      CLOSE curiskeydeleted 1
      DEALLOCATE curiskeydeleted 1

      Comment

      • ck9663
        Recognized Expert Specialist
        • Jun 2007
        • 2878

        #4
        They're talking about the CURSOR not the variable.

        -- CK

        Comment

        • chinni0719
          New Member
          • Apr 2008
          • 18

          #5
          i deallocated the cursor

          Comment

          Working...