sql刪除關聯數據
⑴ sql 兩個表關聯刪除數據
刪除主-從表的記錄可以建立簡單存儲過程來實現:
CREATE PROCEDURE [存儲過程]
(
@Id VARCHAR(50)
)
AS
DELETE [子表] WHERE [關聯Id] = @Id
DELETE [主表] WHERE [Id] = @Id
GO
執行方法:EXECUTE [存儲過程] @Id
⑵ SQL怎樣級及刪除多個表有關聯的數據
你在表上增加級聯刪除,一旦刪除主表中的數據,從表中的數據,就自動被刪除了
⑶ sql server 刪除多張表關聯數據 怎麼刪除
具體方法:
作為外鍵暫且叫它主表,Delete from Main Where id=@id
則要先刪除子表當中 Delete from Detail where MainId = @id
為了保證數據完整性,最好將上面的操作包含在一個事務中,如果兩個語句影響的行數都大於零,則提交,否則回滾。
⑷ 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
⑸ SQL 如何把兩個表相關聯的數據一同刪除
其實你這個問題最好用資料庫本身的外鍵解決。就是在子表建立指向父表的外鍵。當刪除主表數據時,只要加上delete語句加上 on cascade,所有子表引用的數據就刪除了。
⑹ SQL 語句刪除問題同時刪除兩個表內關聯的數據
一個sql語句是沒辦法執行兩個刪除操作,如果你要實現上面的功能,有以下幾個選擇:
1.用外鍵關聯刪除,把B表的uid設成外鍵關聯A表的ID,並關聯刪除操作
2.用存儲過程,用事務來處理實現;
望採納!