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

熱點內容
加密和黎曼猜想 發布:2024-11-08 05:33:08 瀏覽:419
中央編譯出版社一年的銷售額 發布:2024-11-08 05:32:15 瀏覽:561
c語言結構體位域 發布:2024-11-08 05:31:00 瀏覽:553
androidv7包 發布:2024-11-08 05:26:41 瀏覽:540
停止共享文件夾腳本 發布:2024-11-08 05:20:54 瀏覽:39
查看資料庫的sid 發布:2024-11-08 05:16:47 瀏覽:830
菲斯塔dlxdct是哪個配置 發布:2024-11-08 05:06:09 瀏覽:212
profile怎麼配置 發布:2024-11-08 05:06:07 瀏覽:377
一鍵安裝linux 發布:2024-11-08 05:04:36 瀏覽:788
lol直播什麼配置要求 發布:2024-11-08 05:04:33 瀏覽:951