❶ 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