views:

229

answers:

2

I'm trying to make a copy of a table variable:

DECLARE @lt_Sections TABLE
(
  teamId SMALLINT NOT NULL
)

DECLARE @lt_tempSections TABLE
(
  teamId SMALLINT NOT NULL
)

-- populate some values in @lt_Sections
-- take a copy of @lt_Sections

SET @lt_tempSections = @lt_Sections

This is giving me an error:

Msg 137, Level 15, State 2, Line 14
Must declare the scalar variable "@lt_Sections".

What have I done wrong??

Thanks, Mark

+2  A: 

You can't copy table variables like this (think of them more as you would a real/temporary table).

You'd need to:

INSERT @lt_tempSections (teamId)
SELECT teamId FROM @lt_Sections
AdaTheDev
+1  A: 

Set (or select) can be applied only to a scalar variable not a Table variable.

Instead of setting values you should use Insert

DECLARE @lt_Sections TABLE 
    ( 
      teamId SMALLINT NOT NULL 
    ) 

DECLARE @lt_tempSections TABLE 
( 
  teamId SMALLINT NOT NULL 
) 

insert @lt_TempSections(teamId)
select teamId from @lt_sections
TonyP
+1 perfect thanks
Mark Cooper