【问题标题】:Can't figure out why I'm getting an invalid column name error无法弄清楚为什么我收到无效的列名错误
【发布时间】: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


【解决方案1】:
 Can you try 'SELECT * FROM #tc1' as a test (without inserting into #bc1 table).

【讨论】:

  • 这应该是评论,而不是答案
猜你喜欢
  • 2017-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多