在创建新变量后,根据连接的结果实例化临时表

时间:2018-02-07 16:30:28

标签: sql-server

我试图将查询结果存储为SQL Server中的临时表。有人可以解释为什么set语法在这里是错误的吗?我以为我正确地遵循格式from here

select * 
into #temp_Academic 
set XlistGrp_Course_CRN = s.Subject+' '+s.Course_Number+' ('+x.XlistGrp_Course_CRN+')'
from AcademicYear r 
inner join Xlist x on r.XlistGrp = x.xlistgrp and r.term=x.term
inner join Sections s on x.term = s.Term and x.XlistGrp_Course_CRN = s.CRN

错误:

  

Msg 102,Level 15,State 1,Line 21
  '='附近的语法不正确。

2 个答案:

答案 0 :(得分:0)

declare @CListGrp as nvarchar(255)

select *, @XlistGrp_Course_CRN = s.Subject+' '+s.Course_Number+' ('+x.XlistGrp_Course_CRN+')' into #temp_Academic 

from AcademicYear r 
inner join Xlist x on r.XlistGrp = x.xlistgrp and r.term=x.term
inner join Sections s on x.term = s.Term and x.XlistGrp_Course_CRN = s.CRN

答案 1 :(得分:0)

该集用于分配变量,我假设你有一个拼写错误,在帖子中遗漏了,。一般来说,你不应该同时选择,在一个选择条款中设置。

您正在寻找的只是列的别名,您可以尝试:

select *,XlistGrp_Course_CRN = s.Subject+' '+s.Course_Number+'   ('+x.XlistGrp_Course_CRN+')' 
 into #temp_Academic,      
from AcademicYear r 
inner join Xlist x on r.XlistGrp = x.xlistgrp and r.term=x.term
inner join Sections s on x.term = s.Term and x.XlistGrp_Course_CRN = s.CRN

OR

select *,s.Subject+' '+s.Course_Number+' ('+x.XlistGrp_Course_CRN+')' as XlistGrp_Course_CRN 
into #temp_Academic, 
from AcademicYear r 
inner join Xlist x on r.XlistGrp = x.xlistgrp and r.term=x.term
inner join Sections s on x.term = s.Term and x.XlistGrp_Course_CRN = s.CRN

对于您的参考文章,操作系统的问题是如何将查询结果分配给一个变量,而不是直接给出值。

比较

SELECT @varble = value FROM TABLE -- assume only one value returned

VS

SET @varable = 5 --assume you declared @varable as INT