我试图将查询结果存储为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
'='附近的语法不正确。
答案 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