【发布时间】:2012-12-28 15:00:58
【问题描述】:
我有这两个我正在使用的临时表(它们实际上是由以前的开发人员编写的,我正在尝试在不使用游标的情况下调整他的代码以更快,但这不是重点)并且我已经运行遇到一个我想不通的小问题。
这里有一些代码:
CREATE TABLE #bc1 (
[ContractID] decimal
,[custid] int
,[PostDate] date
,[RouteID] varchar(50)
,[RouteCommission] money
,[ContractTotal] money
,[ContractTotal0] money
)
INSERT INTO #bc1 ( [ContractID], [custid], [PostDate], [RouteID], [RouteCommission] )
SELECT
t.[ContractID]
,t.[custid]
,t.[PostDate]
,t.[RouteID]
,t.[RouteCommission]
FROM
#tc1 t;
现在,您可以看到它非常简单。有一个表#bc1 正在创建有五列,它从另一个有7 列的表中获取所有数据。这在查询的中间(大约四页,这就是我没有包括它的原因)几乎是一团糟,这就是它中断的地方。它告诉我
消息 207,第 16 层,状态 1,第 178 行
列名“custid”无效。
这让我发疯了。顺便提一下,第 178 行是插入语句。
有什么想法吗?
【问题讨论】:
-
您确定
#tc1表有custid字段吗? -
而表
#tc1是否有列custid? -
create 语句用于#bc1,但 select 需要表 #tc1 中的 custid 列
-
作为额外评论(因为我不喜欢光标),请在此处查看替代方案;)stackoverflow.com/questions/5425642/…
-
#tc1 确实有一个 custid 列。我认为问题在于临时表从未被删除。我在创建它之前删除了临时表,我们会看看它是怎么回事。
标签: sql-server tsql sql-server-2008