我想在刪除存儲過程中使用兩個表。通常情況下,我可以寫這樣的查詢:如何刪除時如何在存儲過程中使用2個表?
刪除*從TABLE_1 X,TABLE_2ÿ
其中x.ID = y.ID
但我coundn't與存儲過程做(你知道=)
請幫助..
我想在刪除存儲過程中使用兩個表。通常情況下,我可以寫這樣的查詢:如何刪除時如何在存儲過程中使用2個表?
刪除*從TABLE_1 X,TABLE_2ÿ
其中x.ID = y.ID
但我coundn't與存儲過程做(你知道=)
請幫助..
謝謝所有的答案,我可以用「renegm」做到這一點,「塞巴斯蒂安Piu的評論。 是的,我想從兩個表中刪除所有行,所以我沒有這樣說,這:
使用DB
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE delUser
(
@ID INT
)
AS
DELETE FROM TABLE_1
FROM TABLE_1
INNER JOIN TABLE_2爲Y
ON Table_1.ID = Y.ID
AND Y.ID = @ID
DELETE FROM TABLE_2
WHERE Table_2.ID = @ID
它的工作,但它確實解決方案,我不知道究竟=))
DELETE FROM table_1
FROM table_1
INNER JOIN table_2 AS Y
ON table_1.id = Y.id
這隻會刪除table_1中的行。OP希望從兩個表中刪除所有行,只用一條刪除語句,在多次嘗試之後,我認爲他最好用Sebastian Piu的評論中的鏈接。 – 2010-12-19 02:10:26
select distinct ID
into #temp
from table_1
join table_2
on table_1.ID = table_2.ID
delete table_1
where ID in (select * from #temp)
delete table_2
where ID in (select * from #temp)
drop table #temp
最簡單+無混淆
只能刪除表格。
MSDN描述爲刪除
刪除(處理SQL)
從表或視圖中刪除行。
如果你想從table2刪除時從table1刪除,你可以使用table1上的觸發器。
看到這個鏈接:http://forums.devshed.com/showpost.php?p=322160&postcount=5
謝謝你,我用過觸發器並解決了這個問題。 – jakobiyem 2010-12-29 19:09:18
哪個數據庫和版本? – 2010-12-19 00:02:44
對不起,我應該說.. Microsoft SQL Server 2008 - Express – jakobiyem 2010-12-19 00:10:43
http://stackoverflow.com/questions/783726/how-do-i-delete-from-multiple-tables-using-inner-join-in- sql-server – 2010-12-19 00:30:51