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

标签 mysql sql-server-2008 sql-update transition

在阅读了许多论坛并尝试了许多示例之后,我似乎仍然无法将旧的 mySQL 查询转换为 SQL Server 2008。我读过的许多示例包括当在表 2 中找到单个值时更新表 1 中的列。我使用的旧 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;

我发现令人沮丧的是我可以简单地更改表名称以重新使用简单的查询

因为我无法将我的表重新命名为 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 Server 不喜欢我使用的 mySQL 查询?

最佳答案

这应该有效...

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

诺埃尔

关于mysql - 使用表 2 中的数据更新表 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36983257/

相关文章:

php - 根据 ID 在单独的文件中显示博客文章

mysql - 我需要为表中的字段设置什么数据类型,以限制一组选项的值?

sql - 从数据库中的多个表中查找特定列(字段)名称

mysql - DATE_ADD 函数在更新中不起作用

php - 根据条件按组格式化结果?

php - codeigniter 查询生成器中的 ORDER_BY

sql - 选择实时值的时间间隔 - 缺少第一个和最后一个间隔

sql - 从 SQL Server 中的表的每一行中获取单词 `href` 和 `nofollow` 的计数

使用主键的 SQL 查询

php - 如何在没有并发问题的情况下选择行并更新它们?