【发布时间】:2011-07-29 09:37:38
【问题描述】:
我的 sp 的一部分包含以下代码。代码在我的本地 sql 数据库中成功执行。但是当我在 sql azure 中运行它时,它会给出错误消息:
“此版本的 SQL Server 不支持全局临时对象。”
如何更改此查询以使其在 azure 中运行。
SET @query = N'SELECT STUDENT_ID, ROLL_NO, TITLE, STUDENT_NAME, EXAM_NAME, '+
@cols +
' INTO ##FINAL
FROM
(
SELECT ROLL_NO, TITLE, STUDENT_ID, SUBJECT_ID, STUDENT_NAME, EXAM_NAME, DISPLAYORDER, MARKS
FROM #AVERAGES
UNION
SELECT ROLL_NO, TITLE, STUDENT_ID, SUBJECT_ID, STUDENT_NAME, EXAM_NAME, DISPLAYORDER, MARKS
FROM #MARKS
UNION
SELECT ROLL_NO, TITLE, STUDENT_ID, SUBJECT_ID, STUDENT_NAME, EXAM_NAME, DISPLAYORDER, MARKS
FROM #GRACEMARKS
UNION
SELECT ROLL_NO, TITLE, STUDENT_ID, SUBJECT_ID, STUDENT_NAME, EXAM_NAME, DISPLAYORDER, MARKS
FROM #TOTAL
) p
PIVOT
(
MAX([MARKS])
FOR SUBJECT_ID IN
( '+
@cols +' )
) AS FINAL
ORDER BY STUDENT_ID ASC, DISPLAYORDER ASC, EXAM_NAME ASC;'
EXECUTE(@query)
【问题讨论】:
-
您能解释一下为什么需要全局临时表吗?这可能有助于缩小建议解决方案的重点。
-
我在 "@cols" 中获取列名,列名是 [10],[11],[36] 等,我不知道。我只能从“@cols”得到 dem。有什么方法可以写一个直接的查询。?
标签: sql sql-server sql-server-2008 tsql azure-sql-database