當前位置:首頁 » 編程語言 » 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