使用表 2 中的数据更新表 1

update table1 with data from table2

在阅读了许多论坛并尝试了许多示例之后,我似乎仍然无法将我的旧 mySQL 查询转换为 SQL Server 2008。我阅读的许多示例包括从 table 1 当它在 table 中找到单个值时 2. 我使用的旧 mySQL 脚本是

UPDATE stock.tbldesk_inv As T1
inner JOIN stock.deskinvfix AS T2 ON T1.serial_number = T2.SN
SET T1.location = T2.Location, 
T1.asset_number = T2.AssNumber, 
T1.department = T2.dept, 
T1.status = T2.Status, 
T1.first_name = T2.firstn, 
T1.last_name = T2.lastn;
DELETE FROM stock.deskinvfix;
SELECT * FROM stock.deskinvfix;

我觉得很沮丧,我可以简单地更改 table 名称以重新使用简单的查询

因为我不能将我的 table 重命名为 T1 或 T2,所以新查询很难理解。我个人希望我能留在 mySQL.

UPDATE [InventoryDatabase].[dbo].[Hardware_Inventory] SET
[InventoryDatabase].[dbo].[Hardware_Inventory].ComputerName = [InventoryDatabase].[dbo].[updatepcname].SCCMName
FROM   [InventoryDatabase].[dbo].[Hardware_Inventory]
INNER JOIN [InventoryDatabase].[dbo].[updatepcname] ON [InventoryDatabase].[dbo].[Hardware_Inventory]
WHERE [InventoryDatabase].[dbo].[Hardware_Inventory].SerialNumber = [InventoryDatabase].[dbo].[updatepcname].SCCMSerial

谁能告诉我为什么 SQL 服务器不喜欢我使用的 mySQL 查询?

这应该有效...

UPDATE T1
SET T1.ComputerName = T2.SCCMName 
FROM Hardware_Inventory as T1
INNER JOIN updatepcname as T2 ON T1.SerialNumber = T2.SCCMSerial

诺埃尔