SQL - 刚刚声明的无效列名

时间:2018-02-27 19:06:23

标签: sql-server

我有一些像这样的代码一直在抛出一个"无效的列名"错误:

CREATE PROCEDURE SampleProcedure
    CREATE TABLE #WorkTable(
        ID INT NOT NULL PRIMARY KEY,
        ForeignKeyID INT NULL
    )
    INSERT INTO #WorkTable(ID, ForeignKeyID)
    SELECT 1, 1

在调用它时,我不断从程序中得到这个错误:

  

列名称无效' ForeignKeyID'。 SampleProcedure中的第6行。

1 个答案:

答案 0 :(得分:0)

使用相同名称定义临时表的父过程没有[ForeignKeyID]列,因此定义临时表的子过程被SQL不正确地解析。

真正的错误应为

  

已经有一个名为'#TempTable'在数据库中。

我的修复方法是将子进程的临时表更改为表变量。

P.S。我在这里提出这个问题/答案,让其他人对SQL Server中的错误消息感到头疼。