1
我有更新語句中引用表變量的問題。似乎我不能使用@a.id
列(編譯器說它沒有聲明)。引用表變量
下面的例子只是爲了說明問題,這意味着我知道我可以在當前的例子中解決問題,重命名列ID並避免參考,但它不是一個選項,我真的不能去做。我看到了一些使用from語句替代正在更新的表的解決方案,但在本例中,我使用from語句來表示其他內容。有其他解決方法嗎?
declare @a table
(
id int not null,
name varchar(100) null
)
insert into @a (id, name) values (1, null)
insert into @a (id, name) values (2, null)
insert into @a (id, name) values (3, null)
declare @b table
(
id int not null,
name varchar(100) null
)
insert into @b (id, name) values (1, 'one')
insert into @b (id, name) values (2, 'two')
update @a
set
name = f.name
from
(
select
id,
name
from @b
where
id = @a.id
) f
where
@a.id = f.id
您的第二套插入語句應放入@b? – Beth
究竟是什麼問題?你的問題是什麼? – LittleBobbyTables
在@b聲明下面的兩個INSERT語句是否真的應該引用@b?也就是說,所有五個插入都進入了@a,而沒有進入@b,但是看起來第二個組真的需要去@b .... –