2010-12-19 48 views
2

我想在刪除存儲過程中使用兩個表。通常情況下,我可以寫這樣的查詢:如何刪除時如何在存儲過程中使用2個表?

刪除*從TABLE_1 X,TABLE_2ÿ
其中x.ID = y.ID

但我coundn't與存儲過程做(你知道=)

請幫助..

+0

哪個數據庫和版本? – 2010-12-19 00:02:44

+0

對不起,我應該說.. Microsoft SQL Server 2008 - Express – jakobiyem 2010-12-19 00:10:43

+2

http://stackoverflow.com/questions/783726/how-do-i-delete-from-multiple-tables-using-inner-join-in- sql-server – 2010-12-19 00:30:51

回答

0

謝謝所有的答案,我可以用「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

它的工作,但它確實解決方案,我不知道究竟=))

0
DELETE FROM table_1 
    FROM table_1 
     INNER JOIN table_2 AS Y 
      ON table_1.id = Y.id 
+0

這隻會刪除table_1中的行。OP希望從兩個表中刪除所有行,只用一條刪除語句,在多次嘗試之後,我認爲他最好用Sebastian Piu的評論中的鏈接。 – 2010-12-19 02:10:26

0
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 

最簡單+無混淆

0

只能刪除表格。

MSDN描述爲刪除

刪除(處理SQL)

從表或視圖中刪除行。

如果你想從table2刪除時從table1刪除,你可以使用table1上的觸發器。

看到這個鏈接:http://forums.devshed.com/showpost.php?p=322160&postcount=5

+0

謝謝你,我用過觸發器並解決了這個問題。 – jakobiyem 2010-12-29 19:09:18

相關問題