我有一个查询问题,用于存储临时表中存储过程的结果。请参阅下面的查询本身的简化版本:
USE [ADataBaseName]
GO
CREATE TABLE #temp(
SrcUD16 VARCHAR(200))
DECLARE @return_value int
INSERT INTO #temp(
SrcUD16)
EXEC @return_value = [dbo].[AStoredProcedure]
@PartKey = 100,
@Entity_Name = N'SomeEntityName,
@PeriodDesc = N'QA - 2014',
@CategoryKey = 12
SELECT * FROM #temp
GO
存储过程创建另外两个要在Select语句中连接的临时表:
SELECT SrcUD16 FROM #temp2 LEFT JOIN #temp3
ON #temp2.MinMaxCIC = #temp3.SrcUD15
执行上面的第一个语句会给我以下错误: '列名'无效'SrcUD16'
但是,手动执行存储过程确实会产生字段SrcUD16的预期结果。我还可以将字段名从SrcUD16更改为SrcUD15,这会导致工作查询尽管列标题不正确(即ScrUD16数据带有'SrcUD15'作为标题)。
我强烈怀疑这个错误与创建临时表的顺序以及查询识别为允许的字段标题有什么关系。也许有更好理解的人对我来说有指针?
提前致谢