哦,上面的存储过程发错了,应该是: CREATE PROCEDURE ts_gx AS declare @sjhrk char(12) , @sjhrka varchar (12) , @lr varchar (200) declare ts_gx cursor for select SJHRK from ts open ts_gx fetch next from ts_gx into @sjhrk while @@fetch_status=0 begin select @sjhrk=sjhrk from tsg_tsgc where sjhrk=@sjhrk select @lr=title from tsg_tsgc where sjhrk=@sjhrk select @sjhrka=sjhrk from ts where sjhrk=@sjhrk if @sjhrk=@sjhrka begin --select * from ts update ts set 正标题=@lr where sjhrk=@sjhrka end fetch next from ts_gx into @sjhrk end close ts_gx deallocate ts_gx GO
好像不需要使用游标吧?只是update 的话看这个:update a set 正标题 = title from ts a join ts_gx b on a.sjhrk=b.sjhrk ------- 不知是不是你要表示的意思: 即根据ts_gx表的title 列更新 ts 表的 正标题 列
update a set 正标题=b.title from ts a,tsg_tsgc b where a.sjhrk=b.sjhrk
ts_gx這個表不能掉吧。Update ts set 正标题 = tsg_tsgc.title From ts Inner Join tsg_tsgc On ts.sjhrk = tsg_tsgc.sjhrk Inner Join ts_gx On ts_gx.sjhrk = tsg_tsgc.sjhrkOrUpdate ts set 正标题 = tsg_tsgc.title From ts, tsg_tsgc, ts_gx Where ts.sjhrk = tsg_tsgc.sjhrk And ts_gx.sjhrk = tsg_tsgc.sjhrk
看存儲過程,似乎用上了這個表。以下是用別名的方式 Update ts set 正标题 = tsg_tsgc.title From ts A Inner Join tsg_tsgc B On A.sjhrk = B.sjhrk Inner Join ts_gx C On B.sjhrk = C.sjhrk或者Update ts set 正标题 = tsg_tsgc.title From ts A, tsg_tsgc B, ts_gx C Where A.sjhrk = B.sjhrk And B.sjhrk = C.sjhrk
CREATE PROCEDURE ts_gx AS
declare @sjhrk char(12) , @sjhrka varchar (12) , @lr varchar (200)
declare ts_gx cursor
for
select SJHRK from ts
open ts_gx
fetch next from ts_gx into @sjhrk
while @@fetch_status=0
begin
select @sjhrk=sjhrk from tsg_tsgc where sjhrk=@sjhrk
select @lr=title from tsg_tsgc where sjhrk=@sjhrk
select @sjhrka=sjhrk from ts where sjhrk=@sjhrk
if @sjhrk=@sjhrka
begin
--select * from ts
update ts set 正标题=@lr where sjhrk=@sjhrka
end
fetch next from ts_gx into @sjhrk
end
close ts_gx
deallocate ts_gx
GO
from ts a
join ts_gx b on a.sjhrk=b.sjhrk
-------
不知是不是你要表示的意思:
即根据ts_gx表的title 列更新 ts 表的 正标题 列
ts
set
正标题 = tsg_tsgc.title
From
ts
Inner Join
tsg_tsgc
On ts.sjhrk = tsg_tsgc.sjhrk
Inner Join
ts_gx
On ts_gx.sjhrk = tsg_tsgc.sjhrkOrUpdate
ts
set
正标题 = tsg_tsgc.title
From
ts, tsg_tsgc, ts_gx
Where ts.sjhrk = tsg_tsgc.sjhrk
And ts_gx.sjhrk = tsg_tsgc.sjhrk
Update
ts
set
正标题 = tsg_tsgc.title
From
ts A
Inner Join
tsg_tsgc B
On A.sjhrk = B.sjhrk
Inner Join
ts_gx C
On B.sjhrk = C.sjhrk或者Update
ts
set
正标题 = tsg_tsgc.title
From
ts A, tsg_tsgc B, ts_gx C
Where A.sjhrk = B.sjhrk
And B.sjhrk = C.sjhrk
--------
可能加了ts_gx 這個表的原因。試試xiaoku(野蛮人(^v^)) 和红尘的方法