如何更新#temptable

Fir*_*ock 3 sql t-sql temp-tables

CREATE TABLE #TempProducts (
    Id uniqueidentifier,
    ManufacturerId uniqueidentifier,
    Number varchar(50),
    PresentId uniqueidentifier null)
Run Code Online (Sandbox Code Playgroud)

如何更新 PresentId 字段?我在这方面有不同的错误:

1) 数据库中已有一个名为“#TempProducts”的对象。

UPDATE #TempProducts
SET #TempProducts.PresentId = p.Id
FROM #TempProducts JOIN Products p ON (#TempProducts.ManufacturerId = p.ManufacturerId AND #TempProducts.Number = p.Number)
WHERE #TempProducts.Id <> p.Id
Run Code Online (Sandbox Code Playgroud)

2) 无法绑定多部分标识符“t.PresentId”。

UPDATE #TempProducts
SET t.PresentId = p.Id
FROM #TempProducts t JOIN Products p ON (t.ManufacturerId = p.ManufacturerId AND t.Number = p.Number)
WHERE t.Id <> p.Id
Run Code Online (Sandbox Code Playgroud)

Tec*_*hDo 5

对于第二个错误,请尝试:

UPDATE t
SET t.PresentId = p.Id
FROM #TempProducts t JOIN Products p ON (t.ManufacturerId = p.ManufacturerId AND t.Number = p.Number)
WHERE t.Id <> p.Id
Run Code Online (Sandbox Code Playgroud)