基本 SQL - 使用临时表;无法绑定多部分标识符“mytable.Number”

问题描述

我想声明一个临时表,然后引用我在创建时传递给它的单个数字。

GO
DROP TABLE IF EXISTS
    #my_table
SELECT 
    Number
INTO 
    #my_table
FROM
    MyDB1.dbo.MyTable
WHERE 
    NumberTwo = '(user provided input)'

UPDATE 
    WorkingTable
SET
    SerialNo = Bar.SerialNo,Make = Bar.Make,Model = Bar.Model,UnitNo = Bar.UnitNo,Time = Bar.Time
FROM 
    MyDB1.dbo.AnotherTable as Bar
    My_Table as Foo
WHERE 
       Bar.SerialNo = Foo.Number
AND 
       ThirdTable.ThisNumber = '(user provided input)'

COMMIT

但它一直因“无法绑定多部分标识符“my_table”而失败,我一直无法弄清楚原因。 我知道这是因为在更新中没有找到/正确引用临时表“my_table”,但这就是我所知道的全部 - 我自己写的 sql 不多,所以非常感谢任何帮助。谢谢!

解决方法

您似乎缺少 # 符号。

试试这个:

GO
DROP TABLE IF EXISTS
    #my_table
SELECT 
    Number
INTO 
    #my_table
FROM
    MyDB1.dbo.MyTable
WHERE 
    NumberTwo = '(user provided input)'

UPDATE 
    WorkingTable
SET
    SerialNo = Bar.SerialNo,Make = Bar.Make,Model = Bar.Model,UnitNo = Bar.UnitNo,Time = Bar.Time
FROM 
    MyDB1.dbo.AnotherTable as Bar
    INNER JOIN #my_table as Foo
       ON Bar.SerialNo = Foo.Number
WHERE ThirdTable.ThisNumber = '(user provided input)'

COMMIT