當前位置:首頁 » 編程語言 » sql語句實現級聯刪除操作
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql語句實現級聯刪除操作

發布時間: 2022-05-22 05:33:09

sql server中如何級聯刪除

可以用下邊的方法,僅供參考:

--創建測試主表.ID是主鍵.
CREATETABLEtest_main(
idINTNOTNULL,
valueVARCHAR(10),
PRIMARYKEY(id)
);


--創建測試子表.
CREATETABLEtest_sub(
idINTNOTNULL,
main_idINT,
valueVARCHAR(10),
PRIMARYKEY(id)
);


--插入測試主表數據.
INSERTINTOtest_main(id,value)VALUES(1,'ONE');
INSERTINTOtest_main(id,value)VALUES(2,'TWO');

--插入測試子表數據.
INSERTINTOtest_sub(id,main_id,value)VALUES(1,1,'ONEONE');
INSERTINTOtest_sub(id,main_id,value)VALUES(2,2,'TWOTWO');

然後,創建外鍵,使用ONDELETECASCADE選項,刪除主表的時候,同時刪除子表

ALTERTABLEtest_subADDCONSTRAINTmain_id_consFOREIGNKEY(main_id)REFERENCEStest_mainONDELETECASCADE;

執行刪除:

DELETEFROMTEST_MAINWHEREID=1;

最後:

SELECT*FROMTEST_MAIN;

結果子表中就只有ID=2的記錄,也就說明級聯刪除成功。

❷ 如何在sql中實現級聯刪除

比如,你要刪帖子號為X的話,先刪回復表中所有帖子號為X的回復,再刪帖子表裡帖子號為X的帖子。
語法么就是:delete from 表名 where 帖子號=X
或者 你設置一個觸發器(trigger),當刪除帖子表中的帖子前,回復表裡該帖子的回復也刪掉(注意觸發器的時間要定在貼子表中刪除帖子前刪除回復,因為回復表中的帖子號是外鍵)。

❸ SQL資料庫里怎樣執行級聯刪除>

建立關系(外鍵)的時候選擇「級聯刪除」,刪除的時候只需要操作主表,子表就不用管了,自動喀嚓。

❹ SQL server中怎麼修改級聯刪除修改

在創建表的時候就需要設置級聯刪除和級聯更新(修改)。方法如下:

altertableSZ_Picture
addconstraintFK_SZ_PICTU_RELATIONS_SZ_PICTUforeignkey(pictureTypeId)
referencesSZ_PictureType(pictureTypeId)
--其中這句就是級聯更新和級聯刪除

級聯刪除:

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

級聯更新:

更新主鍵值的操作,該值由其它表的現有行中的外鍵列引用。在級聯更新中,更新所有外鍵值以與新的主鍵值相匹配。

❺ SQL 怎麼級聯刪除語句

方法一:
MSSQLSERVER是支持級聯更新和級聯刪除的,你要在建立外鍵的時候,要指定
EP:
alter
table
tb_userroles
add
constraint
FK_TB_USERR_RELATIONS_TB_FUNCT
foreign
key
(gnbm)
references
tb_function
(gnbm)
on
update
cascade
on
delete
cascade
方法二:用資料庫觸發器

❻ sql中級聯刪除,級聯更新是怎麼理解的

主外鍵的用用到的!當你設置主外鍵時可以選擇是否進行級聯刪除,級聯更新;當刪除或更新主鍵表中的記錄時,sql會自動刪除或者更新該主鍵所對應外鍵表中的記錄。具體的情況你可以測試一下!

❼ SQL 怎麼級聯刪除語句

方法一:
MSSQLSERVER
是支持
級聯更新

級聯刪除
的,你要在建立
外鍵
的時候,要指定
EP:
alter
table
tb_userroles
add
constraint
FK_TB_USERR_RELATIONS_TB_FUNCT
foreign
key
(gnbm)
references
tb_function
(gnbm)
on
update
cascade
on
delete
cascade
方法二:用資料庫觸發器

❽ sql2000 如何用觸發器實現級聯刪除

下面是在user表上建立觸發器的語句,在topic上建觸發器的語句類似
CREATE
TRIGGER
deleteuser
ON
[dbo].[user]
INSTEAD
OF
DELETE
AS
DECLARE
@id
int;
--把數據類型改成與user_id一致
SELECT
@id=user_id
from
deleted;
DELETE
FROM
UT
WHERE
user_id=@id;
DELETE
FROM
user
WHERE
user_id=@id;
你把級聯
DELETE

UPDATE取消掉就行了

❾ sql sever2005 如何在建好「關聯」中實現「級聯刪除」

1、選擇主鍵表, 右鍵修改表
2、在表中點擊右鍵關系
3、選定關系名稱, 右邊屬性窗口
表設計器->INSERT 和 UPDATE 規范->刪除規則 選擇 層疊

在刪除主鍵表中數據時, 可以實現級聯刪除表中數據

❿ sql多表關聯刪除

刪除多表關聯數據的三種方法

1、級聯刪除

createtablea
(
idvarchar(20)primarykey,
passwordvarchar(20)notnull
)
createtableb
(
idintidentity(1,1)primarykey,
namevarchar(50)notnull,
userIdvarchar(20),
foreignkey(userId)referencesa(id)ondeletecascade
)



表B創建了外碼userId 對應A的主碼ID,聲明了級聯刪除

測試數據:

insertavalues('11','aaa')
insertavalues('23','aaa')
insertbvalues('da','11')
insertbvalues('das','11')
insertbvalues('ww','23')


刪除A表內id為『11』的數據,發現B表內userId 為「11」也被資料庫自動刪除了

deleteawhereid='11'


2、採用存儲過程

A表:AID Aname 主健:AID

B表:BID BelongAID Bname 主健:BID,外健:BelongAID

C表:CID BelongBID Cname 主健:CID,外健:BelongBID

D表:DID BelongCID Dname 主健:DID,外健:BelongCID

其中:

A表和B表通過A.AID和B.BelongAID 創建了外健關系

B表和C表通過B.BID和C.BelongBID 創建了外健關系

C表和D表通過C.CID和D.BelongCID 創建了外健關系


3、採用觸發器

刪除Class表中的一條記錄的同時刪除該記錄Class_No欄位值在Student表中對應的記錄。

CreateTriggerClass_delete
onClass
fordelete
as
begin
deletefromStudent
whereClass_No=(selectClass_Nofromdeleted)
end