【发布时间】:2019-06-21 22:47:09
【问题描述】:
所以我有一个表,其中包含以下列:
RequestID Owner Name Owner Email Date GUID Comments (etc)
1 Joe Soap joe.soap@gmail.com 1/2/19 asdfasdfasdf
2 Sally Soap ssoap@hotmail.com 9/7/15 asf2f23f23f2
3 Joe Schmo jschmo@yahoo.com 1/1/19 af2f2f2f2f2f
4 Adam ABC abc_adam@adam.com 3/2/18 f89282822828
我所做的是将表格导出到 excel 文件并在 excel 文件中进行更改。我对特定 RequestID 的“所有者电子邮件”和“所有者名称”列进行了更改。
我要做的是将三列导入临时表(“RequestID”、“Owner Name”、“Owner Email”)。然后我想根据请求 ID 更新主表。因此它会更新所有者姓名和所有者电子邮件,如下所示:
RequestID Owner Name Owner Email
3 Joe Schmo Jr joesnewemailaddr@gmail.com
1 Joe Replacement newjoe@yahoo.com
我认为我需要的脚本是这样的:
UPDATE
MainTable
SET
MainTable.OwnerName = New.OwnerName
MainTable.OwnerEmail = New.OwnerEmail
FROM
MainTable
INNER JOIN
UpdateTable
ON
MainTable.RequestID = UpdateTable.RequestID
应该这样吧?
【问题讨论】:
-
嗯,运行代码的时候,是不是这样?
-
应该澄清一下 - 我无法访问测试环境,所以希望有人在我运行它之前检查一下以确保它检查出来:)
-
Should have clarified - I don't have access to a test environment, so would just like someone to look this over to make sure it checks out before I run it please :) -
您可以随时启动事务,更新表,然后选择一些示例行以查看在发出提交之前是否获得了所需的结果。更新语法很大程度上取决于您使用的 DBMS。名称不匹配 UpdateTable / New 并且在 New.OwnerName 之后缺少逗号。
-
您使用的是哪个 dbms? (该 UPDATE FROM 代码是特定于产品的。)
标签: sql sql-server tsql join sql-update