0

我有一个表(aspnet_Membership),其中包含我需要删除的垃圾邮件记录。有一些外键,我正在尝试编写一个简单的 SQL 语句来删除 FK,这样我就可以删除主记录。

因此,有一个名为“aspnet_UsersInRoles”的表,它具有 UserID 和 RoleID,在我的“aspnet_Membership”表中是 UserID。我不能在不孤立记录的情况下删除用户(由于限制,无论如何我都不会这样做)。

我如何才能基本上运行以下内容:

'delete from 'aspnet_UsersInRoles' where UserID in 'aspnet_Membership' and 'aspnet_Membership.CreateDate >= '03/15/2009'?

感谢您的任何建议。

4

2 回答 2

4

好吧,您可能已经设置了外键来执行级联删除,这样您就不必担心它,但是您在查询中的尝试非常接近可行的方法,只需使用子查询:

DELETE FROM aspnet_UsersInRoles WHERE UserID IN (SELECT UserID FROM aspnet_Membership WHERE aspnet_Membership.CreateDate >= '03/15/2009')
于 2009-03-16T19:42:45.563 回答
1

您可以在删除时更改约束以进行级联: 链接

否则,您可以查看 sys.foreign_keys 表以使用主键获取所有外键并自动生成 sql 以首先在那里进行删除。

于 2009-03-16T19:40:59.377 回答