我想在删除存储过程中使用两个表。通常,我可以像这样编写查询:
从table_1 x,table_2 y中删除* 其中x.ID = y.ID
但我不能用存储过程(你知道=)
请帮助..
答案 0 :(得分:0)
DELETE FROM table_1
FROM table_1
INNER JOIN table_2 AS Y
ON table_1.id = Y.id
答案 1 :(得分:0)
感谢您的所有答案,我可以使用“renegm”和“Sebastian Piu”的评论来做到这一点。 是的,我想删除两个表中的所有行,所以我这样做:
USE DB
SET ANSI_NULLS ON GO
SET QUOTED_IDENTIFIER ON GO
ALTER PROCEDURE delUser
(
@ID int
)
AS
从表1中删除 从表_1 INNER JOIN表2 AS Y 在表_1.ID = Y.ID
和Y.ID = @ID
从表2中删除 表格_2.ID = @ID
它正在工作,但它确实是我不确切知道的解决方案=))
答案 2 :(得分: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
最简单+没有混淆
答案 3 :(得分:0)
仅删除表格。
删除的MSDN说明
DELETE(Transact-SQL)
从表格或视图中删除行。
如果你想在从table1删除时总是从table2删除,你可以使用table1上的触发器。
请参阅此链接:http://forums.devshed.com/showpost.php?p=322160&postcount=5