这是对此问题的后续问题:
关于更新联结表。为此,我必须在 WHERE 子句中使用联结表中的两个键值。
Users UserAddresses Addresses
======= ============= =========
FirstName UserId City
LastName AddressId State
Zip
例如,在此示例中,假设我想更新 UserAddresses 表中的 AddressId 字段,因为用户更改了他的地址。我必须在更新 WHERE 子句中同时使用现有的 UserId 和地址 AddressId。
我正在使用存储过程,并将 UserId 和新的 AddressId 作为参数传递。
我试过这个:
CREATE PROCEDURE dbo.test
(
@UserId int,
@AddressId int
)
AS
create table #temp
(
UserId int not null,
AddressId int not null
)
insert into #temp select UserId, AddressId from UserAddresses where UserId = @UserId
update UserAddresses
set AddressId = @AddressIdD
WHERE (UserId+AddressId in #temp table = UserId+AddressId passed in as parameters)??
我尝试了各种组合,但我似乎无法正确使用语法。
传入的 UserId 当然与 UserAddresses 表中的相同,但这只是我尝试的一些事情。WHERE 子句似乎出错了。
有什么想法吗?