T-SQL复制表变量

时间:2010-01-29 11:18:09

标签: sql-server tsql 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

这给了我一个错误:

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

我做错了什么?

谢谢, 标记

2 个答案:

答案 0 :(得分:3)

Set(或select)只能应用于标量变量而非Table变量。

您应该使用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

答案 1 :(得分:2)

你不能像这样复制表变量(想象它们就像真实/临时表一样)。

你需要:

INSERT @lt_tempSections (teamId)
SELECT teamId FROM @lt_Sections