Это дополнительный вопрос к этому:
Примеры запросов в отношении многие ко многим
относительно обновления таблицы соединений. Для этого мне потребуется использовать оба значения ключа в соединительной таблице в предложении WHERE.
Users UserAddresses Addresses
======= ============= =========
FirstName UserId City
LastName AddressId State
Zip
Например, в этом примере, скажем, я хотел обновить поле AddressId в таблице UserAddresses, потому что пользователь изменил свой адрес. Мне бы пришлось использовать как существующий UserId, так и адрес AddressId в предложении обновления WHERE.
Я использую хранимую процедуру и передаю в качестве параметров 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, кажется, что-то идет не так.
Есть мысли?