当前位置:首页 » 编程语言 » sql多表更新

sql多表更新

发布时间: 2023-02-22 02:38:33

A. 如何实现MSsql数据库多表关联更新

--你要先在测试库测试哦

--建表
createtablet_bd_item_info
(
item_noVarchar(20),
item_subnoVarchar(20)
)

--测试数据
insertintot_bd_item_infovalues('12345678','98765432')
insertintot_bd_item_infovalues('123456789012','12345678')
insertintot_bd_item_infovalues('1234567801234','98976543')

--得到需要替换的item_no和item_subno
Select*into#TmpFrom
(
Select*,ROW_NUMBER()over(partitionbyitem_subnoorderbyitem_no)Asid
Fromt_bd_item_infoA
Wherelen(item_no)in(12,13)andLEN(item_subno)=8
Andnotexists(Select*Fromt_bd_item_infoBwhereB.item_no=A.item_subno)
)SwhereID=1

--替换(包含item_no的所有表都替换)
Execsp_MSforeachtable@command1="Update?Setitem_no=B.item_subnoFrom?Ainnerjoin#TmpBonA.item_no=B.item_no",@whereand="Ando.namein(selectdistinctobject_name(object_id)fromsys.columnswherename='item_no')"

--删除临时表
DropTable#Tmp

B. SQL语句实现两个表同时更新

你把 A 表的字段设成主键,把 B 表相应的字段设置成外键,即可建立相关性。
但是更新数据时,必须先删掉 B 表的数据,接着更新 A 表,再 Insert B 表。

若你不想删除,你可以先 Disable 主外键,等更新完,再 Enable 之。

C. sql 多表查询更新

那要看你用的是什么数据了
sqlserver : update A a set a.i = b.k - b.unk from B b where a.key = b.key
oracle : update A a set a.i = (select b.k-b.unk from B b where a.key = b,key) where exists(select 1 from B b a.key = b.key)

试试看 应该是可以的

D. 在sql中,怎么更新表中数据

UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值,update语句的写法:

1、UPDATE table_name

2、SET column1=value1,column2=value2,...

3、WHERE column(1)=value(1),column(2)=value(2)...and column(n)=value(n);

4、UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing',WHERE LastName = 'Wilson'。

用途:更新表中原有数据

单独使用,使用where匹配字段

set后面,更新字段值,既可以一次一项,也可以一次多项

例:

“Person”表中的原始数据:

LastName FirstName Address City

Nilsen Fred Kirkegt 56 Stavanger

Rasmussen Storgt 67

运行下面的SQL将Person表中LastName字段为”Rasmussen”的FirstName更新为”Nina”:

UPDATE Person SET FirstName = 'Nina' WHERE LastName = 'Rasmussen'

E. SQL Server数据库多表关联如何更新

一条Update更新语句是不能更新多张表的,除非使用触发器隐含更新。而表的更新操作中,在很多情况下需要在表达式中引用要更新的表以外的数据。我们先来讨论根据其他表数据更新你要更新的表

一、MS SQL Server 多表关联更新
sql server提供了update的from 子句,可以将要更新的表与其它的数据源连接起来。虽然只能对一个表进行更新,但是通过将要更新的表与其它的数据源连接起来,就可以在update的表达式 中引用要更新的表以外的其它数据。
一般形式:
update A SET 字段1=B表字段表达式, 字段2=B表字段表达式 from B WHERE 逻辑表达式
例如:
UPDATE dbo.Table2
SET dbo.Table2.ColB = dbo.Table2.ColB + dbo.Table1.ColB
FROM dbo.Table2
INNER JOIN dbo.Table1
ON (dbo.Table2.ColA = dbo.Table1.ColA);

实际更新的操作是在要更新的表上进行的,而不是在from子句所形成的新的结果集上进行的

F. sql怎么同时更新数据库中多个表

分成几条语句写。但结构关系良好的库应该不存在一个数据变动导致多处要改的情况,因为可以通过表关系,主键自动更新。

G. 关于SQL:怎么让多个表同时更新数据

用不到触发器~~一个存储过程就够了,触发器如果没必要还是不要用的好,不过想陷害人倒是不错的

create procere proce_adser
@userName varchar(50),
@gender varchar(2),
@address varchar(100),
@phone varchar(30),
@loginName varchar(20),
@pwd varchar(20),
@customerId int=1
as
insert into UserLogin values(@loginName,@pwd)
select @customerId = customerId from UserLogin
where loginName = @loginName
insert into Customer values(@customerId,@userName,@gender,@address,@phone)
go

最近写的一个项目的插入存储过程
是将值写入第一章表,在用select查找第一章表中的自动增长列的值付给一个函数,再将函数与其余值写入第二章表

H. sql 多表更新查询

语句:
update OneReport
set OneReport.oneration=a.a2
from
(
select pb.proctid a1, o.oneration a2 from proctbaseinf pb
inner join Oneration o
on pb.proctno = o.proctno
) a
where OneReport.proctid=a.a1

因为表proctbaseinf和表Oneration的关联字段没看到,所以假设是proctno,你自己看看

I. SQL数据库怎么进行多表级联更新,求个存储过程

createprocaa
@IDint
as
begin
update表1setflag=1where表1ID=@ID

update表2setflag=1from表1a,表2bwherea.表1ID.=b.表1IDanda.表1ID=@ID

update表3setflag=1from表1a,表3cwherea表1ID.=c.表1IDanda.表1ID=@ID

update表4setflag=1from表1a,表3b,表4cwherea表1ID.=b.表1IDandc.表3ID=b.表3IDanda.表1ID=@ID

update表5setflag=1from表1a,表3b,表5cwherea表1ID.=b.表1IDandc.表3ID=b.表3IDanda.表1ID=@ID

update表6setflag=1from表1a,表3b,表6cwherea表1ID.=b.表1IDandc.表3ID=b.表3IDanda.表1ID=@ID
end
---执行---
--execaa1

热点内容
蓝鸥php培训 发布:2024-11-08 02:56:29 浏览:652
电脑配置xp是什么意思 发布:2024-11-08 02:56:27 浏览:339
软件自带服务器地址怎么办 发布:2024-11-08 02:55:45 浏览:577
幸福密码电视剧讲述了什么 发布:2024-11-08 02:55:40 浏览:425
win7文件夹看不到文件 发布:2024-11-08 02:55:37 浏览:666
苹果安卓战力哪个高 发布:2024-11-08 02:45:04 浏览:532
安卓备份哪个系统好 发布:2024-11-08 02:35:50 浏览:736
unlinklinux 发布:2024-11-08 02:31:30 浏览:663
nginxphp编译 发布:2024-11-08 02:11:57 浏览:979
粉笔手机号注册的密码是什么 发布:2024-11-08 02:01:49 浏览:249