SQLServer游标怎么用一个表的某一字段内容替换另一个表的字段内容啊

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQLServer游标怎么用一个表的某一字段内容替换另一个表的字段内容啊相关的知识,希望对你有一定的参考价值。

declare @ccode varchar(20)
declare @systype int
declare cur cursor for
select ccode
from hr_epm_main
open cur
fetch next from cur into @ccode
while @@FETCH_STATUS = 0
begin
insert into hr_epm_base(ccode,systype) values(@ccode,0)
fetch next from cur into @ccode
end
close cur
deallocate cur
go
这是我把hr_epm_base清空后插入的
怎么只把hr_epm_main表的ccode列插入hr_epm_base的ccode列,其他的不动啊求解答

这段代码,就算不清空hr_epm_base表,也已经实现了把hr_epm_main的ccode插入。

难道你是想更新?追问

是的 单一字段的更新,这是把base表清空了才插入的,base中有主键,不清空的话没办法插入,怎么只更新那一个字段啊

追答

你是要更新base表的主键?

如果你只想更新base表的code。

--insert into hr_epm_base(ccode,systype) values(@ccode,0)

换成下面的语句
insert into hr_epm_base(ccode) values(@ccode)

追问

declare @id
update hr_epm_base set ccode=@ccode where id=@id

这样就可以了 晕

追答

如果是单纯的update,直接级联表更新更简单。

何必要用游标呢。

追问

额,大哥,级联怎么写啊

追答UPDATE 表A SET A字段=B字段 FROM 表A
INNER JOIN 表B ON 表A.ID=表B.AID
WHERE 条件

参考技术A 这个不是已经实现了吗 ,把from hr_epm_main的ccode放到from hr_epm_base的ccode 参考技术B 这两个表之间是用 systype 作为关联么?还是没有关联?追问

没有关联,只是base中有主键没办法插入只能清空后插入,其实base表中也没东西,但是清空再插入感觉不是很好,若是能只更新ccode一个字段就完美了,把main中的ccode字段插入base中

MySQL中,修改表的某一字段的部分值

语法:update 表名 set 字段名 = replace(字段名,\'替换前内容\',\'替换后的内容\') where 条件。

如:

执行sql语句:update student set name = replace(name,\'白\',\'黑\') where name like \'%白%\';

 

以上是关于SQLServer游标怎么用一个表的某一字段内容替换另一个表的字段内容啊的主要内容,如果未能解决你的问题,请参考以下文章

我想更新sql 表1中的某一列数值,这个数值是从另外一个表中取出来的。语句怎么写

MySQL中,修改表的某一字段的部分值

sqlserver创建一个新表,求助

在pl/sql中怎么查询所有存在的表,以及怎么样获得未知表中的某一字段

如何对sql数据库中的某一字段进行替换?

ORACLE数据库 存储过程 中 从几张级联表中查询 出结果集,循环添加到另一张表的某一字段