当前位置:首页 » 编程语言 » sql循环更新表数据
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql循环更新表数据

发布时间: 2022-05-07 17:55:59

❶ 如何用sql语句更新一张表里的多条数据

update TableA set NameSpell=dbo.fn_GetPinyin(name)

UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
不知道是不是这个意思

❷ sql如何更新数据(用sql语句)

代码如下:
--创建链接服务器
exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 '
exec sp_addlinkedsrvlogin 'ITSV ', 'false ',null, '用户名 ', '密码 '

--查询示例
select * from ITSV.数据库名.dbo.表名

--导入示例
select * into 表 from ITSV.数据库名.dbo.表名

--以后不再使用时删除链接服务器
exec sp_dropserver 'ITSV ', 'droplogins '

--连接远程/局域网数据(openrowset/openquery/opendatasource)
--1、openrowset

--查询示例
select * from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名)

--生成本地表
select * into 表 from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名)

--把本地表导入远程表
insert openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名)
select *from 本地表

--更新本地表
update b
set b.列A=a.列A
from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名)as a inner join 本地表 b
on a.column1=b.column1

--openquery用法需要创建一个连接

--首先创建一个连接创建链接服务器
exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 '
--查询
select *
FROM openquery(ITSV, 'SELECT * FROM 数据库.dbo.表名 ')
--把本地表导入远程表
insert openquery(ITSV, 'SELECT * FROM 数据库.dbo.表名 ')
select * from 本地表
--更新本地表
update b
set b.列B=a.列B
FROM openquery(ITSV, 'SELECT * FROM 数据库.dbo.表名 ') as a
inner join 本地表 b on a.列A=b.列A
--3、opendatasource/openrowset
SELECT *
FROM opendatasource( 'SQLOLEDB ', 'Data Source=ip/ServerName;User ID=登陆名;Password=密码 ' ).test.dbo.roy_ta

❸ SQL 同时更新一张表里的一个字段所有数据

按如下语句就行了:

update [表名] set [字段名] = [值];

如果是根据一个表更新此表,套用如下方式:

update [表名] set [字段名] = (select [字段名] from [其他表] where [两表间的关联条件])。

❹ SQL如何批量更新数据

您好,可先将需要正确的更新的内容导入到另一张表中,通过另一张表的数据与原始的表数据的关联关系进行批量更新。如此多列都可进行批量更新。

❺ 使用 sql语句 update 实现更新两张表的数据

update a set a.FName=b.FName from a inner join b on a.MenuID=b.MenuID
通过表a的MenuID找到表b的FName,并将a表的值更改为b表的值

❻ sql表数据自动更新

sql表数据自动更新
要实现两个表之间的数据的自动更新,可以采用触发器来实现,触发器的实现方法:
1、A表有数据更新的时候自动更新B表:
create or replace trigger tg after update on A for each row
begin
update B set xx=xx where b.aid = a.id;
end;
/
2、A表插入数据时,B表更新数据:
create or replace trigger tgg after insert on A for each row
begin
insert B values(xxxx);
end;
/
如果不需要每条数据都跟新,只需要在每次A更新的时候更新B,可以将后面的for each row去掉。

❼ SQL怎么向其它表循环更新数据

可以使用一种非游标的方式实现。
1. 先用row_number函数将A、B表的每行都分配一个从0开始的序号。并且,计算出B表的总行数。
select 姓名, row_number() over (order by 姓名) - 1 as seq
from A表;

select 性别, row_number() over (order by 性别) - 1 as seq, count(*) over() as total_rows
from B表;

2. 将两个查询连接起来,分组。
select a.姓名, b.性别
from
(select 姓名, row_number() over (order by 姓名) - 1 as seq
from A表) as A,
(select 性别, row_number() over (order by 性别) - 1 as seq, count(*) over() as total_rows
from B表) as B
where a.seq % b.total_rows = b.seq

3. 用查询结果更新原来的表。为了可读性,将查询放到一个CTE里。
with cte_new
as
(
select a.姓名, b.性别
from
(select 姓名, row_number() over (order by 姓名) - 1 as seq
from A表) as A,
(select 性别, row_number() over (order by 性别) - 1 as seq, count(*) over() as total_rows
from B表) as B
where a.seq % b.total_rows = b.seq
)
update A表 set 性别 = c.性别
from A表 as a, cte_new as c
where a.姓名 = c.姓名;

❽ sql 如何重复更新表格中数据

你可以建这么一个触发器
如果0913被改了,那个把比0913大的所有数据的
set
库存=库存+(new:库存-old:库存)
所有13号以后的同步变化就是了

❾ 请问mssql中,用循环游标update列数据的方法

--建立环境
create table t1
(
id int
)

--插入数据,这里插入奇数
declare @i int
select @i = 0
while (@i < 100)
begin
insert into t1 select @i * 2 +1
select @i = @i + 1
end

--游标处理
declare @ii int
declare @k int
select @k = 1,@ii = 1

declare c_update_id cursor for
select id from t1
for update

open c_update_id

fetch next from c_update_id into @ii
while(@@fetch_status=0)
begin
update t1 set id = @k where current of c_update_id

fetch next from c_update_id into @ii
select @k = @k + 1
end

CLOSE c_update_id
DEALLOCATE c_update_id

--查询
select * from t1

--删除环境
drop table t1

--以上代码在sql server 2005 测试通过

PS: 如果这个表有主键的话,就非常简单,不用游标,一条update语句搞定。

❿ sql 循环 更新数据到另一个表

假设A表的ID为自增列,insert into a select (case when aa='h1' then BB else '' end) as h1,
(case when aa='h2' then BB else '' end) as h2,
(case when aa='h3' then BB else '' end) as h3
from b