【问题标题】:update table1 with data from table2使用表 2 中的数据更新表 1
【发布时间】:2016-05-02 13:08:51
【问题描述】:

在阅读了许多论坛并尝试了许多示例之后,我似乎仍然无法将旧的 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 查询?

【问题讨论】:

  • 我没有给你答案,只有一些提示可以让你的查询更具可读性和更容易理解。如果我理解您所说的“重新命名”是什么意思,您当然可以在 SQL Server 中做到这一点。它被称为 [表别名](technet.microsoft.com/en-us/library/ms187455(v=sql.105).aspx)。如果从 InventoryDatabase 运行查询时,您不需要使用“[InventoryDatabase]”限定您的表,因为这是默认设置。您也不需要指定“[dbo]”,因为它是默认所有者。试试这些东西,然后也许我们可以了解为什么 SQL Server 不喜欢您的查询。
  • 在不相关的注释上,为什么我不能有多个段落或在评论中使用 Markdown?看起来很奇怪。
  • 它应该像这样简单,但是我从 SQL Management Studio 'UPDATE Hardware_Inventory as t1 SET T1.ComputerName = T2.SCCMName as T2 ON INNER JOIN updatepcname as T2 ON T1.SerialNumber = T2 .SCCMserial '

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


【解决方案1】:

这应该可以...

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

诺埃尔

【讨论】:

  • 当我第一次尝试该查询时,我仍然遇到多部分标识符错误。但是在我关闭 IntelliSense 之后,查询就起作用了。我有点困惑为什么 IntelliSense 会导致问题。
  • 很奇怪。不确定。
  • 谢谢先生。这将帮助我批量编辑库存数据库。
猜你喜欢
  • 1970-01-01
  • 2023-03-09
  • 2011-10-25
  • 1970-01-01
  • 2016-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多