当前位置:首页 » 编程语言 » sql关联更新

sql关联更新

发布时间: 2023-09-04 01:25:33

A. sql可以两个表一起更新数据吗

如果两个表有关联的话是可以的,比如A表的id和b表的b_id外键关系就可以
update a left join b on a.id = b.b_id set a.name = '',b.name='' (where条件)

B. 请教sql语句 如何实现关联表字段更新

UPDATE多表更新(转)(2008-05-12 15:29:04)
转载标签:update多表更新sql 分类:php网络编程
在开发中,数据库来回换,而有些关键性的语法又各不相同,这是一件让开发人员很头痛的事情.本文总结了Update语句更新多表时在SQL Server,Oracle,MySQL三种数据库中的用法.我也试了SQLite数据库,都没成功,不知是不支持多表更新还是咋的.

在本例中: 我们要用表gdqlpj中的gqdltks,bztks字段数据去更新landleveldata中的同字段名的数据,条件是当 landleveldata 中的GEO_Code字段值与gdqlpj中的lxqdm字段值相等时进行更新.

SQL Server语法:UPDATE { table_name WITH ( < table_hint_limited > [ ...n ] ) | view_name | rowset_function_limited } SET { column_name = { expression | DEFAULT | NULL } | @variable = expression | @variable = column = expression } [ ,...n ] { { [ FROM { < table_source > } [ ,...n ] ] [ WHERE < search_condition > ] } | [ WHERE CURRENT OF { { [ GLOBAL ] cursor_name } | cursor_variable_name } ] } [ OPTION ( < query_hint > [ ,...n ] ) ]

SQL Server示例: update a set a.gqdltks=b.gqdltks,a.bztks=b.bztks from landleveldata a,gdqlpj b where a.GEO_Code=b.lxqdm

Oracle语法: UPDATE updatedtable SET (col_name1[,col_name2...])= (SELECT col_name1,[,col_name2...] FROM srctable [WHERE where_definition])

Oracel 示例: update landleveldata a set (a.gqdltks, a.bztks)= (select b.gqdltks, b.bztks from gdqlpj b where a.GEO_Code=b.lxqdm)

MySQL语法: UPDATE table_references SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition]

MySQL 示例: update landleveldata a, gdqlpj b set a.gqdltks= b.gqdltks, a.bztks= b.bztks where a.GEO_Code=b.lxqdm

C. 如何实现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

D. 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子句所形成的新的结果集上进行的

E. SQL中如何设置级联更新

两种方法:

1.把两个表需要关联的字段,设置主外键关联,然后设置它们级联更新和删除就行了

2.呢,就是给一个表建立触发器,当插入或更新的时候,自动更新另一个表。

试试吧!

F. SQL如何更新关联查询出来的虚拟表数据

1建立一个触发
2物化试图建立一个(快)

创建物化视图日志上的名字 - 。建立物化存储在特定的表空间

表空间的用户视图日志; - 指定表空间

下降物化视图的名称;

创建物化视图的名称 - 创建物化试图

刷新提交快速

- 作为<br刷新后立即提交

br选择/> A. *
从一个表名

热点内容
易手遥控连接密码是多少 发布:2025-02-03 22:44:26 浏览:166
sql安装程序配置服务器失败 发布:2025-02-03 22:44:25 浏览:586
可以写脚本的点击器 发布:2025-02-03 22:44:22 浏览:612
c算法代码 发布:2025-02-03 22:42:20 浏览:862
脚本猫 发布:2025-02-03 22:36:30 浏览:137
qt软件如何反编译 发布:2025-02-03 22:36:27 浏览:22
linux串口数据接收 发布:2025-02-03 22:33:11 浏览:553
战双封脚本吗 发布:2025-02-03 22:32:14 浏览:446
可用内存存储 发布:2025-02-03 22:28:05 浏览:74
邮箱登录需要服务器地址是啥 发布:2025-02-03 22:27:27 浏览:550