SQL Server 批量更新和級聯刪除(批量刪除)

批量更新sql |批量update sql  

SELECT g.GoodsID,g.StockNum,a.GoodsID,a.Amount FROM Goods g INNER JOIN 
(SELECT GoodsID,SUM(Amount) AS Amount FROM OrderGoods WHERE OrderID IN(
SELECT OrderID FROM [Order] WHERE OrderState = 1 AND OrderTime <='2016-01-27 15:56:39.643'
) GROUP BY GoodsID) a ON g.GoodsID = a.GoodsID


UPDATE Goods SET StockNum = StockNum+a.Amount FROM Goods g INNER JOIN 
(SELECT GoodsID,SUM(Amount) AS Amount FROM OrderGoods WHERE OrderID IN(
SELECT OrderID FROM [Order] WHERE OrderState = 1 AND OrderTime <='2016-01-27 15:56:39.643'
) GROUP BY GoodsID) a ON g.GoodsID = a.GoodsID


級聯刪除

SQL SERVER級聯刪除的簡單實現方法

SQL SERVER級聯刪除:在刪除主表時,自動刪除副表(外鍵約束)相應內容

SQL SERVER級聯刪除包含主鍵值的行的操作,該值由其它表的現有行中的外鍵列引用。在級聯刪除中,還刪除其外鍵值引用刪除的主鍵值的所有行。

如:

create database temp
go
use temp
go

create table UserInfo
(
UserId int identity(1,1) primary key ,
UserName varchar(20), --用戶名
password varchar(20) not null --密碼
)

create table UserDetails
(
id int identity(1,1) primary key,
name varchar(50) not null, --真實姓名
userId int,
foreign key (userId) references UserInfo(UserId) on delete cascade
)

insert UserInfo values ('ly','jeff')
insert UserInfo values('wzq','wzqwzq')
insert UserInfo values('lg','lglg')

insert UserDetails values('李四',1)
insert UserDetails values('王五',2)
insert UserDetails values('劉六',3)

此時:Delete From UserInfo Where UserId = 1 就可刪除UserInfo表和UserDetails表的UserId=1 的內容


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章