當前位置:首頁 » 編程語言 » 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-02 09:48:54 瀏覽:433
群暉怎麼玩安卓模擬器 發布:2025-02-02 09:45:23 瀏覽:558
三星安卓12彩蛋怎麼玩 發布:2025-02-02 09:44:39 瀏覽:744
電腦顯示連接伺服器錯誤 發布:2025-02-02 09:24:10 瀏覽:537
瑞芯微開發板編譯 發布:2025-02-02 09:22:54 瀏覽:147
linux虛擬機用gcc編譯時顯示錯誤 發布:2025-02-02 09:14:01 瀏覽:240
java駝峰 發布:2025-02-02 09:13:26 瀏覽:652
魔獸腳本怎麼用 發布:2025-02-02 09:10:28 瀏覽:538
linuxadobe 發布:2025-02-02 09:09:43 瀏覽:212
sql2000資料庫連接 發布:2025-02-02 09:09:43 瀏覽:726