问题描述
我想声明一个临时表,然后引用我在创建时传递给它的单个数字。
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