写一个存储过程将一个表中的一个字段值更新到另一个表相同字段,
2个回答
展开全部
Create Proc pr_Update
as
Beign
Update A Set A.Col1=B.Col1,A.Col2=B.Col2,........
From table1 A ,table2 B Where A.ColN=B.ColN
End
更新多列就在....后面写上,条件根据你的实际情况写。
如果觉得不对,可以把update 改成select试一下。
Select A.Col1,B.Col1,A.Col2,B.Col2,........
From table1 A ,table2 B Where A.ColN=B.ColN
as
Beign
Update A Set A.Col1=B.Col1,A.Col2=B.Col2,........
From table1 A ,table2 B Where A.ColN=B.ColN
End
更新多列就在....后面写上,条件根据你的实际情况写。
如果觉得不对,可以把update 改成select试一下。
Select A.Col1,B.Col1,A.Col2,B.Col2,........
From table1 A ,table2 B Where A.ColN=B.ColN
追问
谢谢您的帮忙,由于查询的结果很多,得用游标来解决
追答
只要是两表一一对应,不用写游标的,它会自动循环更新的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不用存储过程不行吗 很简单啊
update B
set B.columnX = (select A.columnX from A where A.columnY = B.columnY)
--------------------------
update B
set B.columnX = (select A.columnX from A where A.columnY = B.columnY)
--------------------------
追问
谢谢您!主要是返回值A.columnX 不至一行
追答
那就用游标呗 很简单
declare @xxx nvarchar(2000)
declare c cursor
for select 。。。where。。。
open c
fetch next from c into @mapname
while (@@Fetch_Status >= 0)
BEGIN
update。。。。set 。。。where。。
FETCH NEXT FROM c INTO @xxx
END
CLOSE c
DEALLOCATE c
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询