如何通过连接两个 table 来更新 table?
How to update a table by using a join of two tables?
我有一个 table 包含这些列:
Id int, Reference varchar(50), FileId int
'Reference' 列始终以 "D" 或 "C" 结尾。 FileId
需要更新。更新时我有一个 table 变量:
DECLARE @fileIds TABLE (
Id int NOT NULL,
[Type] varchar(1) NOT NULL
);
这个table变量总是最多有2条记录,至少有1条记录。 Type
列的值为 "D" 或 "C"
现在我需要通过设置 FileId
来更新我的 table 以匹配相应的文件 ID。这是进行更新的正确方法吗:
UPDATE myTable
SET
FileId = f.Id
FROM
myTable
INNER JOIN @fileIds f ON RIGHT(s.Reference, 1) = p.[Type]
你错过了 mytable 的别名
UPDATE s
SET
FileId = f.Id
FROM
myTable s
INNER JOIN @fileIds f ON RIGHT(s.Reference, 1) = f.[Type]
我想错过了别名,但你使用了两个不同的别名。因此,"Reference" 和 "Type" 列是属于哪些表,因为使用了其他别名。
使用连接语法更新。
UPDATE
A
SET
A.FileId = B.Id
FROM
tableA AS A
INNER JOIN
tableb AS B ON A.Id = B.Id
我有一个 table 包含这些列:
Id int, Reference varchar(50), FileId int
'Reference' 列始终以 "D" 或 "C" 结尾。 FileId
需要更新。更新时我有一个 table 变量:
DECLARE @fileIds TABLE (
Id int NOT NULL,
[Type] varchar(1) NOT NULL
);
这个table变量总是最多有2条记录,至少有1条记录。 Type
列的值为 "D" 或 "C"
现在我需要通过设置 FileId
来更新我的 table 以匹配相应的文件 ID。这是进行更新的正确方法吗:
UPDATE myTable
SET
FileId = f.Id
FROM
myTable
INNER JOIN @fileIds f ON RIGHT(s.Reference, 1) = p.[Type]
你错过了 mytable 的别名
UPDATE s
SET
FileId = f.Id
FROM
myTable s
INNER JOIN @fileIds f ON RIGHT(s.Reference, 1) = f.[Type]
我想错过了别名,但你使用了两个不同的别名。因此,"Reference" 和 "Type" 列是属于哪些表,因为使用了其他别名。
使用连接语法更新。
UPDATE
A
SET
A.FileId = B.Id
FROM
tableA AS A
INNER JOIN
tableb AS B ON A.Id = B.Id