【发布时间】:2025-12-11 03:55:01
【问题描述】:
在存储过程中,我试图以特定顺序从临时表中返回数据集,但是当我在 select * from #tempTable 上使用 Order By 子句时,我收到错误“列名无效”我订购的任何列。
代码在查询分析器窗口中工作,但在存储过程中不起作用,但存储过程将保存并且不会引发错误。
为什么会这样,我该如何解决?
代码如下:
SELECT
c.CaseID,
Person.PersonID,
Person.LastName, Person.FirstName, Person.MiddleName
INTO
#People
FROM
[Case] c
INNER JOIN
Person ON c.PersonID = Person.PersonID
WHERE
c.CaseID = @caseID
ORDER BY
c.CaseID
SELECT *
FROM #People
ORDER BY CaseID
【问题讨论】:
-
我无法重现您的问题,并不是我认为可以。创建一个将
INFORMATION_SCHEMA.TABLES查询到临时表中的存储过程,并以从该临时表中选择并带有order by 子句的方式结束。如果您仍然遇到问题,请在您的问题中完整添加该存储过程。 -
我无法使用 INFORMATION_SCHEMA.TABLES 重现它。源表上的索引会导致问题吗?
-
我不这么认为。你能制作一个不使用信息模式的完整再现案例吗?我的意思是,为表和存储过程创建脚本,向表中插入一些内容,这说明问题?
-
我周末要去,但我会在周一试一试。谢谢!
-
:) 哇,周末早!这只是星期三!
标签: sql-server stored-procedures sql-server-2012