我有一些像这样的代码一直在抛出一个"无效的列名"错误:
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行。
答案 0 :(得分:0)
使用相同名称定义临时表的父过程没有[ForeignKeyID]列,因此定义临时表的子过程被SQL不正确地解析。
真正的错误应为
已经有一个名为'#TempTable'在数据库中。
我的修复方法是将子进程的临时表更改为表变量。
P.S。我在这里提出这个问题/答案,让其他人对SQL Server中的错误消息感到头疼。