我有这个存储过程:
create procedure jk_insertSPUSH
@regID int,
@favDT favoriteID readonly
as
begin
select * into #_tmp_fav_table from @favDT
alter table #_tmp_fav_table
add handsetID varchar(max)
update #_tmp_fav_table set handsetID=(select handset_type_id
from registration r
INNER JOIN buddies b ON b.reg_id=@regID
INNER JOIN @favDT f ON b.favorite_id=f.favorite_id
where r.reg_id=f.favorite_id)
end
我需要更新我添加到临时表#_tmp_fav_table
的列,但是我的select返回了几个值...我需要更新表中包含所有handset_type_id
的所有行根据{{1}}返回,因此我需要进行多次更新f.favorite_id
我希望我明白我的问题......
答案 0 :(得分:1)
未经测试,但这样的事情可能会对您有所帮助:
UPDATE t
SET handsetId = r.handset_type_id
FROM #_tmp_fav_table t
INNER JOIN registration r ON r.favorite_id=t.favorite_id
INNER JOIN buddies b ON b.reg_id=@regID
INNER JOIN @favDT f ON b.favorite_id=f.favorite_id
where r.reg_id=f.favorite_id
答案 1 :(得分:1)
您可以使用UPDATE FROM语句:
UPDATE
#_tmp_fav_table
SET
handsetID = handset_type_id
FROM
#_tmp_fav_table FT
INNER JOIN @favDT F ON ...
INNER JOIN registration r ON r.reg_id=f.favorite_id
INNER JOIN buddies b ON ...